]> git.saurik.com Git - wxWidgets.git/blobdiff - src/motif/xmcombo/xmcombo.c
Only give capture to wxPopupTransientWindow child if it's the only one.
[wxWidgets.git] / src / motif / xmcombo / xmcombo.c
index b5e148b62969e0cd1ce9190ac9df40675d78683d..be780d1fbc25a33bc621e4dcef6dde3b731e7140 100644 (file)
  *
  */
 #ifdef __VMS
  *
  */
 #ifdef __VMS
+/* vms_x_fix.h should be included before any of the X11/Motif headers */
 #include <wx/vms_x_fix.h>
 #include <wx/vms_x_fix.h>
+#undef XtDisplay
+#undef XtScreen
+#undef XtWindow
+#undef XtIsRealized
+#undef XtParent
+#undef XtClass
 #endif
 
 #endif
 
+/* get XmVersion definition */
+#include <Xm/Xm.h>
+
+#if (XmVersion < 2000)
+
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
 #include <X11/cursorfont.h>
 #include <X11/IntrinsicP.h>
 #include <X11/StringDefs.h>
 #include <X11/cursorfont.h>
 #include <Xm/TextF.h>
 #include <Xm/List.h>
 #include <Xm/LabelP.h>
 #include <Xm/TextF.h>
 #include <Xm/List.h>
 #include <Xm/LabelP.h>
+
 #include <string.h>
 #include <ctype.h> /* define toupper */
 #include "combop.h"
 #include <string.h>
 #include <ctype.h> /* define toupper */
 #include "combop.h"
@@ -1268,24 +1281,32 @@ static struct { String Resource; int Flag; }
 
 static int UpdateColors(XmComboBoxWidget w, int flags)
 {
 
 static int UpdateColors(XmComboBoxWidget w, int flags)
 {
-    Pixel  Color;
+    Pixel  Color, White, Black, EditCol;
     int    i, size = XtNumber(ColorResources);
     Widget ScrolledWin, ScrollBar;
     
     ScrolledWin = XtParent(w->combobox.ListCtrl);
     XtVaGetValues(ScrolledWin, XmNverticalScrollBar, &ScrollBar, NULL);
     int    i, size = XtNumber(ColorResources);
     Widget ScrolledWin, ScrollBar;
     
     ScrolledWin = XtParent(w->combobox.ListCtrl);
     XtVaGetValues(ScrolledWin, XmNverticalScrollBar, &ScrollBar, NULL);
+    White = WhitePixel(XtDisplay(w), WidgetToScreen((Widget) w));
+    Black = BlackPixel(XtDisplay(w), WidgetToScreen((Widget) w));
     for ( i=0; i<size; i++ )
        if ( flags & ColorResources[i].Flag ) {
     for ( i=0; i<size; i++ )
        if ( flags & ColorResources[i].Flag ) {
+            if ( ColorResources[i].Flag == BACKGROUND )
+                EditCol = White;
+            else if ( ColorResources[i].Flag == FOREGROUND )
+                EditCol = Black;
+            else
+                EditCol = Color;
            XtVaGetValues((Widget) w, ColorResources[i].Resource, &Color,
                          NULL);
            XtVaGetValues((Widget) w, ColorResources[i].Resource, &Color,
                          NULL);
-           XtVaSetValues(w->combobox.ListCtrl, 
-                         ColorResources[i].Resource, Color, NULL);
-           XtVaSetValues(ScrolledWin, 
-                         ColorResources[i].Resource, Color, NULL);
            XtVaSetValues(ScrollBar, 
                          ColorResources[i].Resource, Color, NULL);
            XtVaSetValues(ScrollBar, 
                          ColorResources[i].Resource, Color, NULL);
-           XtVaSetValues(w->combobox.EditCtrl, 
-                         ColorResources[i].Resource, Color, NULL);
+            XtVaSetValues(w->combobox.ListCtrl, 
+                          ColorResources[i].Resource, EditCol, NULL);
+            XtVaSetValues(w->combobox.EditCtrl, 
+                          ColorResources[i].Resource, EditCol, NULL);
+            XtVaSetValues(ScrolledWin, 
+                          ColorResources[i].Resource, Color, NULL);
            XtVaSetValues(w->combobox.LabelCtrl, 
                          ColorResources[i].Resource, Color, NULL);
            XtVaSetValues(w->combobox.ArrowCtrl, 
            XtVaSetValues(w->combobox.LabelCtrl, 
                          ColorResources[i].Resource, Color, NULL);
            XtVaSetValues(w->combobox.ArrowCtrl, 
@@ -3548,3 +3569,5 @@ Widget XmCreateComboBox(Widget parent, String name, ArgList arglist,
 } /* XmCreateComboBox */
 
 /* Ende von ComboBox.c */
 } /* XmCreateComboBox */
 
 /* Ende von ComboBox.c */
+
+#endif /* XmVersion < 2000 */