]> git.saurik.com Git - wxWidgets.git/blobdiff - src/univ/winuniv.cpp
64/32 bit fixes
[wxWidgets.git] / src / univ / winuniv.cpp
index 75f8f3bc74e9c40e0c0dbd54fbe411c353ca6b40..bea3acdaf1054b8d819516b8d54fe1f612a23b11 100644 (file)
@@ -145,6 +145,11 @@ bool wxWindow::Create(wxWindow *parent,
                       long style,
                       const wxString& name)
 {
                       long style,
                       const wxString& name)
 {
+    // Get default border
+    wxBorder border = GetBorder(style);
+    style &= ~wxBORDER_MASK;
+    style |= border;
+
     long actualStyle = style;
 
     // we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
     long actualStyle = style;
 
     // we add wxCLIP_CHILDREN to get the same ("natural") behaviour under MSW
@@ -359,8 +364,13 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
     rect.height = size.y;
 
     wxWindow * const parent = GetParent();
     rect.height = size.y;
 
     wxWindow * const parent = GetParent();
-    if ( HasTransparentBackground() && parent )
+    if ( HasTransparentBackground() && !UseBgCol() && parent )
     {
     {
+        // DirectFB paints the parent first, then its child windows, so by
+        // the time this code is called, parent's background was already
+        // drawn and there's no point in (imperfectly!) duplicating the work
+        // here:
+#ifndef __WXDFB__
         wxASSERT( !IsTopLevel() );
 
         wxPoint pos = GetPosition();
         wxASSERT( !IsTopLevel() );
 
         wxPoint pos = GetPosition();
@@ -383,6 +393,7 @@ bool wxWindow::DoDrawBackground(wxDC& dc)
 
         // Restore DC logical origin
         dc.SetLogicalOrigin( org_x, org_y );
 
         // Restore DC logical origin
         dc.SetLogicalOrigin( org_x, org_y );
+#endif // !__WXDFB__
     }
     else
     {
     }
     else
     {
@@ -659,7 +670,7 @@ void wxWindow::OnSize(wxSizeEvent& event)
             }
         }
         else
             }
         }
         else
-        if (HasFlag( wxSUNKEN_BORDER ) || HasFlag( wxRAISED_BORDER ))
+        if (HasFlag( wxSUNKEN_BORDER ) || HasFlag( wxRAISED_BORDER ) || HasFlag( wxBORDER_THEME ))
         {
             if (newSize.y > m_oldSize.y)
             {
         {
             if (newSize.y > m_oldSize.y)
             {
@@ -1412,6 +1423,25 @@ void wxWindow::OnChar(wxKeyEvent& event)
         }
     }
 
         }
     }
 
+    // if Return was pressed, see if there's a default button to activate
+    if ( !event.HasModifiers() && event.GetKeyCode() == WXK_RETURN )
+    {
+        wxTopLevelWindow *
+            tlw = wxDynamicCast(wxGetTopLevelParent(this), wxTopLevelWindow);
+        if ( tlw )
+        {
+            wxButton *btn = wxDynamicCast(tlw->GetDefaultItem(), wxButton);
+            if ( btn )
+            {
+                wxCommandEvent evt(wxEVT_COMMAND_BUTTON_CLICKED, btn->GetId());
+                evt.SetEventObject(btn);
+                btn->Command(evt);
+                return;
+            }
+        }
+    }
+
+
     event.Skip();
 }
 
     event.Skip();
 }