Sophie

Sophie

distrib > Mandriva > 2009.0 > x86_64 > by-pkgid > 04d08a9eaa166e5e7ba8a744ef01709a > files > 50

qt3-3.3.8b-8.1mdv2009.0.src.rpm

--- 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)