289280d
--- qt-x11-free-3.3.3.orig/src/widgets/qmenubar.cpp	2004-08-05 16:42:21.000000000 +0200
289280d
+++ qt-x11-free-3.3.3/src/widgets/qmenubar.cpp	2004-12-03 17:26:43.000000000 +0100
289280d
@@ -228,6 +228,10 @@
289280d
 static const int motifItemHMargin	= 5;	// menu item hor text margin
289280d
 static const int motifItemVMargin	= 4;	// menu item ver text margin
289280d
 
289280d
+// The others are 0
289280d
+static const int gtkItemHMargin = 8;
289280d
+static const int gtkItemVMargin = 8;
289280d
+
289280d
 /*
289280d
 
289280d
 +-----------------------------
289280d
@@ -292,7 +296,14 @@
289280d
     setFrameStyle( QFrame::MenuBarPanel | QFrame::Raised );
289280d
 
289280d
     QFontMetrics fm = fontMetrics();
289280d
-    int h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
289280d
+
289280d
+    int h;
289280d
+    int gs = style().styleHint(QStyle::SH_GUIStyle);
289280d
+    if (gs == GtkStyle) {
289280d
+        h = fm.height() + gtkItemVMargin;
289280d
+    } else {
289280d
+        h = 2*motifBarVMargin + fm.height() + motifItemVMargin + 2*frameWidth() + 2*motifItemFrame;
289280d
+    }
289280d
 
289280d
     setGeometry( 0, 0, width(), h );
289280d
 
289280d
@@ -944,12 +955,19 @@
289280d
 	    h = QMAX( mi->pixmap()->height() + 4, QApplication::globalStrut().height() );
289280d
 	} else if ( !mi->text().isNull() ) {	// text item
289280d
 	    QString s = mi->text();
289280d
-	    w = fm.boundingRect( s ).width()
289280d
-		+ 2*motifItemHMargin;
289280d
+        if ( gs == GtkStyle ) {
289280d
+            w = fm.boundingRect( s ).width() + 2*gtkItemHMargin;
289280d
+        } else {
289280d
+	        w = fm.boundingRect( s ).width() + 2*motifItemHMargin;
289280d
+        }
289280d
 	    w -= s.contains('&')*fm.width('&';;
289280d
 	    w += s.contains("&&")*fm.width('&';;
289280d
 	    w = QMAX( w, QApplication::globalStrut().width() );
289280d
-	    h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
289280d
+        if (gs == GtkStyle ) {
289280d
+            h = QMAX( fm.height() + gtkItemVMargin, QApplication::globalStrut().height() );
289280d
+        } else {
289280d
+	        h = QMAX( fm.height() + motifItemVMargin, QApplication::globalStrut().height() );
289280d
+        }
289280d
 	} else if ( mi->isSeparator() ) {	// separator item
289280d
 	    if ( style().styleHint(QStyle::SH_GUIStyle) == MotifStyle )
289280d
 		separator = i; //### only motif?
289280d
--- qt-x11-free-3.3.3.orig/src/widgets/qpopupmenu.cpp	2004-08-05 16:42:21.000000000 +0200
289280d
+++ qt-x11-free-3.3.3/src/widgets/qpopupmenu.cpp	2004-12-03 17:43:50.000000000 +0100
289280d
@@ -65,6 +65,8 @@
289280d
 static const int motifArrowHMargin	= 6;	// arrow horizontal margin
289280d
 static const int motifArrowVMargin	= 2;	// arrow vertical margin
289280d
 
289280d
+static const int gtkArrowHMargin	= 0;	// arrow horizontal margin
289280d
+static const int gtkArrowVMargin	= 0;	// arrow vertical margin
289280d
 
289280d
 /*
289280d
 
289280d
@@ -2289,8 +2291,18 @@
289280d
     QRect r( itemGeometry( actItem ) );
289280d
     QPoint p;
289280d
     QSize ps = popup->sizeHint();
289280d
+    // GUI Style
289280d
+    int gs = style().styleHint(QStyle::SH_GUIStyle);
289280d
+    int arrowHMargin, arrowVMargin;
289280d
+    if (gs == GtkStyle) {
289280d
+        arrowHMargin = gtkArrowHMargin;
289280d
+        arrowVMargin = gtkArrowVMargin;
289280d
+    } else {
289280d
+        arrowHMargin = motifArrowHMargin;
289280d
+        arrowVMargin = motifArrowVMargin;
289280d
+    }
289280d
     if( QApplication::reverseLayout() ) {
289280d
-	p = QPoint( r.left() + motifArrowHMargin - ps.width(), r.top() + motifArrowVMargin );
289280d
+	p = QPoint( r.left() + arrowHMargin - ps.width(), r.top() + arrowVMargin );
289280d
 	p = mapToGlobal( p );
289280d
 
289280d
 	bool right = FALSE;
289280d
@@ -2303,7 +2315,7 @@
289280d
 	if ( right )
289280d
 	    p.setX( mapToGlobal( r.topRight() ).x() );
289280d
     } else {
289280d
-	p = QPoint( r.right() - motifArrowHMargin, r.top() + motifArrowVMargin );
289280d
+	p = QPoint( r.right() - arrowHMargin, r.top() + arrowVMargin );
289280d
 	p = mapToGlobal( p );
289280d
 
289280d
 	bool left = FALSE;
289280d
--- qt-x11-free-3.3.3.orig/src/kernel/qnamespace.h	2004-08-05 16:42:10.000000000 +0200
289280d
+++ qt-x11-free-3.3.3/src/kernel/qnamespace.h	2004-11-29 22:22:26.000000000 +0100
289280d
@@ -294,7 +294,8 @@
289280d
 #ifdef QT_NO_COMPAT
289280d
     enum GUIStyle {
289280d
 	WindowsStyle = 1,     // ### Qt 4.0: either remove the obsolete enums or clean up compat vs.
289280d
-	MotifStyle = 4        // ### QT_NO_COMPAT by reordering or combination into one enum.
289280d
+	MotifStyle = 4,       // ### QT_NO_COMPAT by reordering or combination into one enum.
289280d
+    GtkStyle = 6          // Gtk compability mode
289280d
     };
289280d
 #else
289280d
     enum GUIStyle {
289280d
@@ -302,7 +303,8 @@
289280d
 	WindowsStyle,
289280d
 	Win3Style, // OBSOLETE
289280d
 	PMStyle, // OBSOLETE
289280d
-	MotifStyle
289280d
+	MotifStyle,
289280d
+    GtkStyle = 6          // Gtk compability mode
289280d
     };
289280d
 #endif
289280d