* TextBoxBase.cs: When a delete removes a line,
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index dabcedf461e3f14ef93dbcfcf11f49d2219f1f12..d3e38e3a813e52acaf9917332bda4a3dd8af7a48 100644 (file)
@@ -1,3 +1,321 @@
+2007-04-06  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: When a delete removes a line, recalculate all
+       lines below that line (they need to get offsets setup correctly)
+       and invalidate.
+
+2007-04-05  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: We need to invalidate across the width of the
+       document when we are invalidating multiple lines.
+       * TextBoxBase.cs: Don't delete into the line ending.
+
+2007-04-05  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Restore the check for the MouseHover event
+       in ListView. It looks like the ListView fires more than one MouseHover
+       event when HoverSelection is true  _only_ in weird-corner scenarios, but
+       in most of the cases it only fires one. Also, add the 2.0 ItemMouseHover
+       event.
+
+2007-04-05  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs : raise MouseDown before updating selection.
+       [Fixes #80373 tab 1&3]
+
+2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripRenderer.cs: Add static method to mirror image.
+       * ToolStripProfessionalRenderer.cs: Support ImageTransparentColor
+       and RightToLeftAutoMirrorImage.
+       * ToolStripItem.cs: Remove MonoTODO from ImageTransparentColor.
+
+2007-04-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripSplitStackLayout.cs: Support Alignment property.
+       * ToolStripItem.cs: Remove MonoTODO from the Alignment property.
+
+2007-04-05  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Move around the line endings when crossing line
+       boundaries.
+       - When combining lines, strip the ending text off the first line.
+
+2007-04-05  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs:
+       * TextBoxBase.cs: Try to never move the cursor into the line
+       ending.
+       
+2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripItem.cs: Make sure we aren't firing mouse events when
+       the item is disabled.  Also add a few missing methods.
+
+2007-04-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: We don't need the MouseEnter/MouseLeave check
+       to fire just one MouseHover event when HoverSelection is true, since
+       .Net does fire more than one MouseHover event in that scenario. Also,
+       fix the selection in HoverSelection, by invoking UpdateMultiSelect
+       if MultiSelect is true, instead of only setting ListViewItem.Selected.
+       Finally, we need to reset the Hover logic in MouseMove, even when we
+       don't have a selected item.
+
+2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStrip.cs: Add several missing methods, properties, and events.
+
+2007-04-04  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBoxColumn.cs: set the bounds of the text box to
+       (0,0,0,0) in Commit, as MS does.
+
+       * DataGrid.cs: call EndEdit() from Select() as microsoft does, and
+       make sure we set CurrentRow on a row header click *before* calling
+       Select.  This moves the current cell (and the textbox) to the new
+       row.  The call to Select then hides the textbox, giving us the
+       correct behavior.  Fixes #80362.
+
+       * CurrencyManager.cs (UpdateIsBinding): raise ItemChanged (-1).
+       (ListChangedHandler): reorder the position/current changed events,
+       and call UpdateIsBinding in the ItemAdded case.
+
+       * GridColumnStylesCollection.cs: add some columns events, one of
+       which raises the CollectionChanged event.
+
+2007-04-04  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: When we delete multiple selection lines
+       invalidate the selection area, don't need to do that for single
+       lines because the final update view will handle it.
+
+2007-04-04  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: When we CreateControl, we need to also create all of the
+       control's children.  The child's OnLoad must also fire before the parent's
+       OnLoad.  Fixes the toolbox size in PDN.
+
+2007-04-04  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: When the user presses enter, insert a line
+       ending into the text. (Maybe this would be a good spot for
+       Environment.NewLine).
+       * TextControl.cs: Remove undo manager hack, line endings get
+       inserted properly now.
+       
+2007-04-04  Everaldo Canuto  <everaldo@simios.org>
+
+       * MenuAPI.cs: 
+       - Remove unneeded parameters in UpdateCursor.
+       - Fix UpdateCursor to check if menu is active.
+       - Call UpdateCursor when menu deactivate my click.
+       [Fixes remaining issues from #80410]
+
+2007-04-04  Everaldo Canuto  <everaldo@simios.org>
+
+       * Control.cs: GetRealChildAtPoint method added, it make an
+       recursive child control search for the point. 
+
+       * Form.cs: Makes use of GetRealChildAtPoint in mouse event after closes
+       menu.
+
+       * MenuAPI.cs: Makes use of GetRealChildAtPoint in UpdateCursor.
+
+2007-04-03  Everaldo Canuto  <everaldo@simios.org>
+
+       * Form.cs: Fix mouse position when send back mouse event after closes
+       menu.
+
+2007-04-03  Everaldo Canuto  <everaldo@simios.org>
+
+       * Form.cs: Simplify the BUTTONDOWN for active tracker.
+
+2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Fix an issue where if a user resized a control inside
+       a sizing method like OnResize, we would overwrite their explicit
+       value.  Also, only call DefaultSize once in the constructor instead
+       of 4 times.  Also, do not call SetBoundsCore from SetBounds if 
+       nothing actually changed.
+
+2007-04-03  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Don't attempt to copy text for lines with no
+       text in them (technically this shouldn't happen, but we aren't
+       always inserting line endings when we should be).
+
+2007-04-03  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: Calculate the scrollbars before calculating the
+       document, because this sets some of the document size properties
+       that are needed.
+
+2007-04-03  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: We need to calculate maximums even if this is
+       not a multiline control, because the maxs are used for scrolling.
+       - Display the caret after doing a page up/down, we need to
+       manually display it because a proper CaretMoved event isn't
+       triggered (this is because of the way the math is done to
+       determine how far to scroll).
+
+2007-04-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolBar.cs: Fix some breakage caused by the SetBoundsCore change.
+       (ToolBar was relying on SetBoundsCore to default the values sent 
+       base off of BoundsSpecified.)
+
+2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * DateTimePicker.cs: Change Text so that when a null value or empty
+         string is assigned to the test we always raise ValueChanged and
+         TextChanged (earlier implementation would only raise ValueChanged
+         if the current date value was different from DateTime.Now).
+
+2007-04-03  Andreia Gaita <avidigal@novell.com> 
+
+       * ButtonBase: Call update after invalidation, fixes #80194
+
+2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * ThemeWin32Classic.cs: Draw StatusBar using double buffering. Fixes
+         #79335.
+
+2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUIX11.cs: SetWMStyles: If the control is a form with
+         FormBorderStyle = None, don't give the window any decorations.
+         Fixes #81276.
+
+2007-04-03  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
+       * CreateParams.cs: Fix IsSet, wasn't working correctly when the style
+         to check for is a mix of several styles (such as WS_CAPTION for
+         instance).
+       * Control.cs: Don't paint an area bigger than the client area when
+         painting the background colour. Add an internal GetCreateParams.
+         Update calls to XplatUI.CalculateWindowRect due to API change.
+       * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole
+         window's size, and handle WM_NCCALCSIZE in DefWndProc to calculate
+         the size if it hasn't been handled by any windows. When creating
+         and moving windows, X wants the location of the entire window, but
+         the size of the client window, so add
+         TranslateClientRectangleToXClientRectangle,
+         TranslateWindowSizeToXWindowSIze and
+         TranslatedXWindowSizeToWindowSize to cope with this, and call them
+         before every window creation and move. Update CalculateWIndowRect
+         to use Hwnd.GetWindowRect (one step towards removing DeriveStyles).
+         In AddConfigureNotify don't do anything if the hwnd is a zombie
+         (fixes the BadWindow we were getting while running the tests),
+         always calculate the offsets when it's a parentless window, not
+         only when reparented, and translate the window size, since we're
+         getting the client size of the whole window, excluding entire
+         window.
+       * Theme.cs: Added BorderSizableSize.
+       * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
+         anymore. Update calls to XplatUI.CalculateWindowRect due to API
+         chang
+       * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API
+         change. Fake the window styles here instead of in XplatUIWin32 so
+         that all back-ends get the same window styles (and it's Form that's
+         deciding when to use wm, not the Win32 backend anyways)
+       * Hwnd.cs: Completely reworked GetWindowRectangle and
+         GetClientRectangle - they are now passed a CreateParams and they
+         only use Style and ExStyle to determine the rectangles (they should
+         now work just like Win32AdjustWindowRectEx - though quite a few
+         special cases are probably missing). They should also be 100%
+         complimentary (i.e. GetWindowRectangle (GetClientRectangle (rect))
+         == rect), and all numbers (borders, menu sizes) are taken from the
+         current theme. Added a GetBorders helper function that will return
+         the borders for any given CreateParams (including captions and
+         menus), and GetBorderSize that returns the given border size only.
+       * XplatUIOSX.cs: Update calls to CalculateWindowRect and
+         Hwnd.GetClientRectangle.
+
+2007-04-02  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridBoolColumn.cs: rewrite things a bit, and fix up the
+       logic between the values we present to the user and the values
+       which are stored in the column's property.  Also, don't call
+       GetPreferredSize - it's virtual. Along the way, fix bug #80965.
+
+2007-04-02  Jackson Harper  <jackson@ximian.com>
+
+       * TextBoxBase.cs: Scroll faster!
+
+2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
+
+       * StatusStrip.cs: Layout fixes for PDN.
+       * ToolStrip.cs: Set item's available to true, and placement to main when
+       added.
+       * ToolStripItem.cs: Fix an Available issue, check that Parent is really
+       changing in setter before doing any work, add InternalVisible.
+       * ToolStripPanel.cs: Remove unused variable to fix compiler warning.
+       * ToolStripSplitStackLayout.cs: If we run out of things to hide, don't
+       infinite loop.
+
+2007-04-02  Jackson Harper  <jackson@ximian.com>
+
+       * TextBox.cs: LBUTTON does not make the textbox select all of it's
+       text on focus.
+
+2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * XplatUIWin32.cs: Use the previous change in SetParent for forms only.
+         Makes ToolStripComboBoxes show up again.
+
+2007-04-02  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Add a hover_pending field in ListView
+       to fire just one OnMouseHover event for each MouseEnter/MouseLeave
+       cycle (we are resetting the MouseHover logic in XplatUI
+       to handle HoverSelection). Fixes #80429.
+
+2007-04-02  Jackson Harper  <jackson@ximian.com>
+
+       * TextControl.cs: Make sure the attributes get set on the last
+       tag.
+       - Still have to do the end tag if we have stepped all the ways to
+       the end.
+
+2007-04-02  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * XplatUIOSX.cs, XplatUIX11.cs, XplatUIX11GTK.cs: Remove dependency
+       on an internal libgdiplus call when the information is already 
+       available via the public API.
+
+2007-04-02  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       * Control.cs: Call ContainerControl.ChildControlRemoved whenever a
+         control is removed from a control collecftion.
+       * XplatUIX11.cs: The first location for toplevel form is (22, 22).
+         Fixes FormPropertyTest (failed on rare occasions).
+       * XplatUIWin32.cs: Add a workaround in SetParent for strange behaviour
+         of Win32SetParent (when changing from no parent to a parent it
+         might add the new parent's location in screen coordinates to this
+         window's location).
+       * Form.cs: Rework ChangingParent once again, now the handle is
+         recreated whenever a FormWindowManager is added or removed (that is
+         whenever a normal form is parented or abandoned). Also change
+         CreateParams so that all non-toplevel windows always get the
+         specified sice (StartupPosition is never considered for
+         non-TopLevel forms).
+       * ContainerControl.cs: Add ChildControlRemoved, the container control
+         needs to be notified when a control is removed from it's
+         collection, in the case the removed control is the active control.
+
+2007-04-02  Jackson Harper  <jackson@ximian.com>
+
+       * RichTextBox.cs: Use the new methods for setting the font and
+       color, these methods set the specified attribute without
+       overriding the other attributes.
+
+2007-04-02  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripPanel.cs: Fixes for better layouts in PDN.
+
 2007-03-31  Gert Driesen  <drieseng@users.sourceforge.net>
 
        * TextBox.cs: Added internal ChangeBackColor method to special-case
 
        * UserControl.cs: Override CreateParams.
 
+2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
+
+       [ Fixes #80995 ]
+
+       * XplatUI.cs, XplatUIDriver.cs: Updated CalculateWindowRect parameters.
+       * CreateParams.cs: Fix IsSet, wasn't working correctly when the style to
+         check for is a mix of several styles (such as WS_CAPTION for instance).
+       * Control.cs: Don't paint an area bigger than the client area when painting
+         the background colour. Add an internal GetCreateParams. Update calls to
+         XplatUI.CalculateWindowRect due to API change.
+       * XplatUIX11.cs: In PerformNCCalc set the initial size to the whole window's
+         size, and handle WM_NCCALCSIZE in DefWndProc to calculate the size if it
+         hasn't been handled by any windows. When creating and moving windows, X
+         wants the location of the entire window, but the size of the client
+         window, so add TranslateClientRectangleToXClientRectangle,
+         TranslateWindowSizeToXWindowSIze and TranslatedXWindowSizeToWindowSize
+         to cope with this, and call them before every window creation and move.
+         Update CalculateWIndowRect to use Hwnd.GetWindowRect (one step towards
+         removing DeriveStyles). In AddConfigureNotify don't do anything if the
+         hwnd is a zombie (fixes the BadWindow we were getting while running the
+         tests), always calculate the offsets when it's a parentless window, not
+         only when reparented, and translate the window size, since we're getting
+         the client size of the whole window, excluding entire window.
+       * Theme.cs: Added BorderSizableSize.
+       * XplatUIWin32.cs: Fix RECT Height and Width. Don't fake styles here
+         anymore. Update calls to XplatUI.CalculateWindowRect due to API change.
+       * Form.cs: Update calls to XplatUI.CalculateWindowRect due to API change.
+         Fake the window styles here instead of in XplatUIWin32 so that all
+         back-ends get the same window styles (and it's Form that's deciding when
+         to use wm, not the Win32 backend anyways)
+       * Hwnd.cs: Completely reworked GetWindowRectangle and GetClientRectangle -
+         they are now passed a CreateParams and they only use Style and ExStyle
+         to determine the rectangles (they should now work just like
+         Win32AdjustWindowRectEx - though quite a few special cases are probably
+         missing). They should also be 100% complimentary (i.e. GetWindowRectangle
+         (GetClientRectangle (rect)) == rect), and all numbers (borders, menu
+         sizes) are taken from the current theme. Added a GetBorders helper
+         function that will return the borders for any given CreateParams
+         (including captions and menus), and GetBorderSize that returns the given
+         border size only.
+       * XplatUIOSX.cs: Update calls to CalculateWindowRect and
+         Hwnd.GetClientRectangle.
+
 2007-03-30  Rolf Bjarne Kvinge <RKvinge@novell.com> 
 
        * Form.cs: Don't layout mdi children on MdiParent creation, the initial
          XplatUIX11.cs, lang.cs:
          - Initial check-in
 
+