]> git.saurik.com Git - wxWidgets.git/commitdiff
1. frames respect update region (Tom Surace patch)
authorVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Jul 1999 00:53:45 +0000 (00:53 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Fri, 23 Jul 1999 00:53:45 +0000 (00:53 +0000)
2. bitmap buttons don't lose bitmaps
3. attempt to reduce number of simultaneously default buttons in a panel

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3089 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/msw/button.cpp
src/msw/frame.cpp
src/msw/notebook.cpp

index 03e9351758e122a7e4e2d9124a29fa093d19aac6..daa665f297bdc0d881a1d545f60d4e278d615b94 100644 (file)
@@ -153,16 +153,31 @@ wxSize wxButton::GetDefaultSize()
 void wxButton::SetDefault()
 {
     wxWindow *parent = GetParent();
 void wxButton::SetDefault()
 {
     wxWindow *parent = GetParent();
+    wxButton *btnOldDefault = NULL;
     wxPanel *panel = wxDynamicCast(parent, wxPanel);
     if ( panel )
     wxPanel *panel = wxDynamicCast(parent, wxPanel);
     if ( panel )
+    {
+        btnOldDefault = panel->GetDefaultItem();
         panel->SetDefaultItem(this);
         panel->SetDefaultItem(this);
+    }
 
     if ( parent )
     {
         SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L);
     }
 
 
     if ( parent )
     {
         SendMessage(GetWinHwnd(parent), DM_SETDEFID, m_windowId, 0L);
     }
 
-    SendMessage(GetHwnd(), BM_SETSTYLE, BS_DEFPUSHBUTTON, 1L);
+    if ( btnOldDefault )
+    {
+        // remove the BS_DEFPUSHBUTTON style from the other button
+        long style = GetWindowLong(GetHwndOf(btnOldDefault), GWL_STYLE);
+        style &= ~BS_DEFPUSHBUTTON;
+        SendMessage(GetHwndOf(btnOldDefault), BM_SETSTYLE, style, 1L);
+    }
+
+    // set this button as the default
+    long style = GetWindowLong(GetHwnd(), GWL_STYLE);
+    style |= BS_DEFPUSHBUTTON;
+    SendMessage(GetHwnd(), BM_SETSTYLE, style, 1L);
 }
 
 // ----------------------------------------------------------------------------
 }
 
 // ----------------------------------------------------------------------------
index db3bd68269d71c36b6e4142afb6b8834e9a723c7..f3123bd1d470820e4ebe242111810deaa608f1eb 100644 (file)
@@ -878,10 +878,7 @@ bool wxFrame::HandlePaint()
         }
         else
         {
         }
         else
         {
-            wxPaintEvent event(m_windowId);
-            event.m_eventObject = this;
-
-            return GetEventHandler()->ProcessEvent(event);
+            return wxWindow::HandlePaint();
         }
     }
     else
         }
     }
     else
index d94b86b315c4bdcdcf1730434e5f44631476255f..6c0c06db8e00a67410b1a8f2c99d0250674a89db 100644 (file)
@@ -424,7 +424,23 @@ void wxNotebook::OnSelChange(wxNotebookEvent& event)
 {
   // is it our tab control?
   if ( event.GetEventObject() == this )
 {
   // is it our tab control?
   if ( event.GetEventObject() == this )
-    ChangePage(event.GetOldSelection(), event.GetSelection());
+  {
+      // don't call ChangePage() here because it will generate redundant
+      // notification events
+      int sel = event.GetOldSelection();
+      if ( sel != -1 )
+        m_aPages[sel]->Show(FALSE);
+      
+      sel = event.GetSelection();
+      if ( sel != -1 )
+      {
+        wxNotebookPage *pPage = m_aPages[sel];
+        pPage->Show(TRUE);
+        pPage->SetFocus();
+      }
+      
+      m_nSelection = sel;
+  }
 
   // we want to give others a chance to process this message as well
   event.Skip();
 
   // we want to give others a chance to process this message as well
   event.Skip();