--- qt3/src/dialogs/qdialog.cpp.sav 2006-03-17 14:33:44.000000000 +0100 +++ qt3/src/dialogs/qdialog.cpp 2006-06-01 13:38:00.000000000 +0200 @@ -670,6 +670,11 @@ bool QDialog::event( QEvent *e ) #if defined(Q_WS_X11) extern "C" { int XSetTransientForHint( Display *, unsigned long, unsigned long ); } +#include <private/qt_x11_p.h> +#undef FocusIn +// defined in qapplication_x11.cpp +extern Atom qt_net_wm_full_placement; +extern bool qt_net_supports(Atom atom); #endif // Q_WS_X11 /*! @@ -691,10 +696,12 @@ void QDialog::show() if ( !did_resize ) adjustSize(); - if ( has_relpos && !did_move ) { - adjustPositionInternal( parentWidget(), TRUE ); - } else if ( !did_move ) { - adjustPositionInternal( parentWidget() ); + if( !qt_net_supports( qt_net_wm_full_placement )) { + if ( has_relpos && !did_move ) { + adjustPositionInternal( parentWidget(), TRUE ); + } else if ( !did_move ) { + adjustPositionInternal( parentWidget() ); + } } if (windowState() != state)