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