In .:
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 153bd98cd937b8187a16d1ff4b0e63990961a690..be2ed4a71afa5f2aa8ca721bb2763123e77481d5 100644 (file)
+2006-06-20  Chris Toshok  <toshok@ximian.com>
+
+       * BindingContext.cs: rewrite the CreateBindingManager code to
+       handle navigation paths more or less properly.  This could
+       definitely stand some more work, in particular to push the
+       recursion up to the toplevel.  But that relies on fixes in other
+       places (System.Data comes to mind).
+
+       Also, move to a flat hashtable (and encode the twolevel nature of
+       the dictionary into the hash key).  This lets us implement the
+       IEnumerable.GetEnumerator method.
+
+       * RelatedCurrencyManager.cs: new class.  Update our view based on
+       our relation and our parent CurrencyManager's position.
+
+       * CurrencyManager.cs: split out some logic from the ctor into
+       SetView, so it can be called from the new RelatedCurrencyManager
+       subclass.
+
+       * RelatedPropertyManager.cs: new class.  Update our datasource
+       based on the position of our parent CurrencyManager.
+
+       * PropertyManager.cs: split out some logic from the ctor into
+       SetDataSource, so it can be called from the new RelatedDataSource
+       subclass.  Also, make the Current getter return the value
+       of the PropertyDescriptor, not the data_source.
+
+       * Binding.cs: no need to duplicate the string splitting code here.
+
+2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs:
+         - set_Enabled: OnEnabledChanged is not called if the inherited state 
+           of the control is not altered, even though  we might be changing the
+           internal state of the control (#78458)
+         - set_Enabled: (Re)Moved the enabling/disabling of the window to 
+           OnEnabledChanged, to allow easy altering of any child window state
+         - OnEnabledChanged: Added code to enable/disable driver window state
+         - OnParentEnabledChanged: Instead of firing the event, call 
+           OnEnabledChanged, which will fire the event and also a) set driver
+           window state and pass the enabled state to any grandchildren (#78458)
+
+2006-06-19  Jackson Harper  <jackson@ximian.com>
+
+       * InternalWindowManager.cs: We don't set the cursor explicitly
+       thats done via the response to NCHITTESTs.
+       - Don't need to adjust for titlebar heights anymore, the
+       coordinates are coming in the correct coordinates now (see peters
+       last patch).
+
+
+2006-06-19  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (GetMessage): WM_NCxBUTTONx messages were wrongly
+         being translated relative to whole window, instead of client window.
+         That caused broken offsets on mouseclick (and caused gas for our
+         InternalWindowManager)
+
+2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * TextControl.cs:
+         - MoveCaret: Implemented PgUp, PgDown, CtrlPgUp and CtrlPgDown
+         - Undo(): Added replay of cursor move on DeleteChars action; added
+           calling Undo() again if a recorded cursor move is invalid (to
+           ensure that some action is performed on Undo)
+       * TextBoxBase.cs (ProcessKey): Added handling of PgUp and PgDown (#78482)
+
+2006-06-16  Jackson Harper  <jackson@ximian.com>
+
+       * MdiClient.cs: Instead of just sizing maximized windows when
+       there is a resize we also have to adjust the Y of minimized
+       windows, so they stay pinned to the bottom of the mdi container.
+       - Eliminate separate tracking of the active control, we can just
+       get this from the controls collection.
+       - Paint the decorations for the newly activated titlebar so we get
+       a pretty blue bar.
+       * InternalWindowManager.cs:
+       * ThemeWin32Classic.cs: Minimized windows get all three buttons
+       even if they are a tool window.
+       
+2006-06-15  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * TextControl.cs (Undo): Handle non-existent cursor locations in the
+         undo buffer, these can happen when text was deleted and the cursor
+         was recorded first. Since we will also have a recorded cursor
+         after the delete this is not an issue. (Fixes #78651)
+
+2006-06-14  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * AccessibleObject.cs: Remove dependence on Control.is_selected;
+         instead properly track control states internally (allows us to
+         remove is_selected from Control)
+
+2006-06-14 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ImageListStreamer.cs: correctly generate the 1bpp mask for images
+       whose width is not a multiple of 8.
+
+2006-06-13  Jackson Harper  <jackson@ximian.com>
+
+       * MdiClient.cs:  Only maximize the next child if the current one
+       is maximized.
+
+2006-06-13  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridColumnStyle.cs: Invalidate the column when HeaderText is
+       modified.  Also, guard against grid or grid_drawing being null in
+       Invalidate.
+
+       * DataGrid.cs: Reformat tons of getters/setters.  In the
+       DataMember setter, just call SetNewDataSource instead of
+       duplicating some of its functionality.  In SetNewDataSource, don't
+       check ListManager for null, since the property getter creates the
+       object if needed.
+
+       * DataGridTableStyle.cs: don't set TableStyle or call
+       SetDataGridInternal on the column here, it's done in
+       GridColumnStylesCollection.Add.
+
+       * GridColumnStylesCollection.cs: fix all the explicit interface
+       implementations to just call our methods.  Nuke AddInternal() and
+       move the body of it to Add().  Also, add a call to
+       column.SetDataGridInternal to Add().
+
+       * DataGridTextBoxColumn.cs (.ctors): call this() instead of
+       base()+duplicate code.  Also, use the Format property instead of
+       format to generate an Invalidate ala MS.  Lastly, create the
+       textbox here, unconditionally.
+       (set_Format): call Invalidate.
+       (get_TextBox): no need to call EnsureTextBox.
+       (Commit): remove the message box.
+       (Edit) remove the call to EnsureTextBox.
+       (EndEdit): call HideEditBox instead of ReleaseHostedControl.
+       (EnterNullValue): no need to check textbox for null.
+       (HideEditBox): no need to check textbox for null.
+       (SetDataGridInColumn): add the textbox to the grid's controls.
+       (EnsureTextBox): nuke.
+       
+2006-06-13  Jackson Harper  <jackson@ximian.com>
+
+       * MdiWindowManager.cs: Hook up to the maximized menus paint event
+       and redraw the buttons when needed. Unhook when the window is
+       unmaximized.
+       * MainMenu.cs: Add an internal Paint event, the mdi window manager
+       needs this so that it can redraw its buttons when the menu is
+       repainted.
+       * InternalWindowManager.cs:
+       * Form.cs: The method order has changed for DrawMaximizedButtons,
+       so that it can be a PaintEventHandler.
+       
+2006-06-13  Jackson Harper  <jackson@ximian.com>
+
+       * MdiClient.cs: When we close a maximized mdi window, the next mdi
+       window is activated and maximized, even if it wasn't before.
+       - When  a new window is activated repaint the decorations of the
+       old one, so that it no longer has the Active "look" (the blue
+       titlebar).
+       * InternalWindowManager.cs: Open up CreateButtons to base classes
+       so they can recreate the buttons on state changes.
+       - If a window is maximized give it all three buttons
+       * MdiWindowManager.cs: Create the titlebar buttons when the state
+       is changed, this is needed because a toolwindow will not have all
+       three buttons until it is maximized.
+
+2006-06-13  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * ProgressBar.cs : PerformStep() shouldn't exceed Maximum.
+         Fixed bug #78609.
+
+2006-06-12  Jackson Harper  <jackson@ximian.com>
+
+       * KeysConverter.cs: Make sure we handle the Ctrl special case
+       if its the only key.
+       
+2006-06-12  Jackson Harper  <jackson@ximian.com>
+
+       * Theme.cs: Add a method to get the size of a managed window
+       toolbar button.
+       * InternalWindowManager.cs: Remove the ButtonSize property, this
+       should be retrieved from the theme.
+       * MdiWindowManager.cs: Get the button size from the theme
+       * ThemeWin32Classic.cs: Make the method to get the managed window
+       titlebar button size public.
+       - Handle the different button sizes of maximized toolwindows
+       (should match any maximized window).
+       - Get the titlebar height from the theme, not the WM (which gets
+       it from the theme).
+
+2006-06-12  Jackson Harper  <jackson@ximian.com>
+
+       * InternalWindowManager.cs: Handle NC Double Clicks, passing the
+       event down to the mdi window manager.
+       - Expose some extra stuff to base classes
+       - Make sure to end the Capture on an NC Mouse up, so that we can
+       get double clicks properly, and the sizing doens't stick.
+       - When doing PointToClient contain it in the workable desktop
+       area, this prevents windows from changing size when the cursor is
+       pulled outside of the working area while sizing.
+       * MdiWindowManager.cs: When we get a double click maximize the
+       window.
+       - Reset the cursor after handling mode changes.
+
+2006-06-12  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (WorkingArea): Read the actual workarea for the 
+         current desktop, instead of just assuming a 0, 0 origin. This
+         is needed for our internal window manager, to know the top
+         margin of the desktop
+
+2006-06-12  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs (set_CurrentCell): concede focus as we move around.
+       we need this to get rid of the selected background in the bool
+       column.
+       (CancelEditing): move the ConcedeFocus call to above the Abort
+       call.  Also, set is_changing to false and invalidate the row
+       header if we were changing before.
+       (ProcessKeyPreviewInternal): remove, since noone outside this
+       class calls it anymore.  Roll the code into ProcessKeyPreview.
+       (EndEdit): remove the internal version.
+       (InvalidateCurrentRowHeader): make private.
+
+       * DataGridBoolColumn.cs: simplify this class a bunch.  remove the
+       Keys.Escape handling (and with it the last call to
+       DataGrid.EndEdit from outside the class.)
+
+
+2006-06-12  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBox.cs (.ctor): isedit defaults to false.
+       (OnKeyPress): set isedit to true.
+       (ProcessKeyMessage): remove Keys.Enter handling from here.  it's
+       already handled by the grid.
+
+       * DataGrid.cs (set_CurrentCell): more work here.  it's still not
+       right.  ugh.
+       (set_DataSource): SetDataSource always returns true, so stop
+       putting it in an if statement.
+       (EndEdit): get rid of some {}'s
+       (ProcessGridKey): return true in case Keys.Escape.
+       (ProcessKeyPreviewInternal): only handle KEYDOWN messages.
+       (ConnectListManagerEvents,DisconnectListManagerEvents): connect to
+       PositionChanged, stopped connecting to CurrentChanged.
+       (GetDataSource): simplify this a bunch.
+       (SetDataSource): change return type from bool to void.
+       (OnListManagerPositionChanged): rename OnListManagerCurrentChanged
+       to this, and make sure we don't set ListManager.Position inside
+       set_CurrentCell.
+       (OnListManagerItemChanged): if we're passed an actual index,
+       redraw that row.
+
+       * CurrencyManager.cs (set_Position): don't call PullData here.
+
+2006-06-09  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs:  Recalculate the visible order before doing the
+       Expand/Collapse Below calls, because those calls generate an
+       expose.
+       - Reduce calls to the TreeView property, which is mildly expensive
+       by using a local var.
+       * Form.cs: Layout the MDI child windows when creating the parent
+       form.
+       - Don't use the internal constructor anymore
+       * MdiClient.cs: use the parent form width/height (if available)
+       when laying out the child windows, we do this because the
+       mdiclient isn't docked yet when the initial layout is done.
+       - Don't need an internal constructor anymore.
+
+2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * FileDialog.cs: handle access errors when trying to create a folder
+       or changing to a directory. No need to initialize out parameters.
+
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Append a number when creating a new folder if the
+         folder already exists (use parenthesis instead of square brackets)
+
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs:
+         - Disabled registry support for windows and added better registry
+           error checking for other systems (need to investigate why it
+           works perfectly on my system)
+         - If a folder already exist show an error MessageBox instead of
+           trying to create an indexed name.
+         - Fixed a non intentional typo.
+
+2006-06-08 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * FileDialog.cs: (SetFileName) don't crash if CurrentRealFolder is null.
+
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: When creating a new folder don't crash if the
+         folder already exists.
+
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Allmost a complete rewrite.
+         - added a "virtual" file system that handles the differences
+           between unix and windows file systems (especially the directory
+           structure). Moved most of the directory and file handling code
+           into the vfs.
+           Added vfs classes: MWFVFS, FileSystem, WinFileSystem,
+           UnixFileSystem and FSEntry.
+         - Recently used folder/directory, size, location and used file names
+           (file name ComboBox) are now stored in the registry and get read
+           before the dialog shows up (fixes part 6 of bug #78446).
+         - Creation of new folders/directories is now possible (context menu
+           or ToolBar). Added TextEntryDialog for this that fills in the gap
+           until ListView.LabelEdit works.
+         - Fixed cursor handling (bug #78527) and focus handling for
+           PopupButtonPanel
+         - Various "Search in" ComboBox enhancements. The content of the
+           dropdown listbox now almost matches ms.
+         - Changed the behaviour when the user switches to SpecialFolder
+           Recent to show the ListView in View.Details.
+         - Beside using the ToolBar to change the View property of the
+           file ListView it is now possible to use the context menu too.
+
+2006-06-08  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ComboBox.cs: Don't create a new ObjectCollection when an item
+         gets inserted. Just insert the item in the existing object_items
+         ArrayList.
+
+2006-06-08  Jackson Harper  <jackson@ximian.com>
+
+       * OpenTreeNodeEnumerator.cs: Fix to use the Parent property, so
+       that the treeview and root node checks are done also, this fixes a
+       regression i caused in the unit tests.
+
+2006-06-07  Wade Berrier <wberrier@novell.com> 
+
+       * RichTextBox.cs: More ISO8859-1 -> unicode
+
+2006-06-07  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs : use items to hold highlight/selection so that
+       collection insertions don't require synchronization.
+
+2006-06-07  Jackson Harper  <jackson@ximian.com>
+
+       * InternalWindowManager.cs: Simplify (and FIX) the window sizing
+       routine.  We now always keep the sized edge at the cursor instead
+       of computing movement and adjusting rects.  There is one buglet
+       with this method though when the cursor is moved over area that
+       the window can not expand too (such as the toolbars on the desktop).
+
+2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * XplatUIX11.cs: (IsEnabled,IsVisible) the window handler can be null
+       here. Fixes crash on startup in AlbumSurfer.
+
+2006-06-07  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * RichTextBox.cs: Replaced embedded ISO8859-1 chars with proper unicode
+         values
+
+2006-06-07 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * XplatUIX11.cs: call XPending and XNextEvent inside the same lock()
+       statement to avoid calling XNextEvent which will block if another thread
+       took the event that we were expecting. Fixes bug #78605.
+
+2006-06-07  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs : isolated checkbox clicking from the selection logic.
+       Toggle check state on item doubleclicks.  Really fixes #78454 part2.
+
+2006-06-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * Form.cs: Check that the value passed to Form.DialogResult
+       is a valid enum value.
+
+2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * FileDialog.cs: disable the up button when in 'Recently Used' or 'My
+       Computer'. Clicking it in the network view goes to 'My Computer'.
+       Added CIFS filesystem type. Display the mount point of filesystems.
+       Avoid duplicate mount points (happens for me with CIFS);
+
+2006-06-06  Jackson Harper  <jackson@ximian.com>
+
+       * InternalWindowManager.cs: Draw the maximized windows buttons
+       when resizing.
+
+2006-06-06 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Form.cs: when running a modal dialog, ignore WM_CLOSE requests for
+       all other dialogs. Fixes bug #78585.
+
+2006-06-06  Mike Kestner  <mkestner@novell.com>
+
+       * CheckedListBox.cs : apply CheckOnClick behavior to unchecking too.
+       Only invalidate checkbox on checkstate changes to avoid flicker.
+       * ListBox.cs : avoid unselect/select when clicking selected item.
+       avoid reselection flicker for already multiselected items.
+       Fixes #78382.
+
+2006-06-06  Jackson Harper  <jackson@ximian.com>
+
+       * MdiWindowManager.cs: When the window is closed do an NCRecalc on
+       the parent form so that the menu is removed if needed.
+
+2006-06-06  Mike Kestner  <mkestner@novell.com>
+
+       * ListBox.cs : add ScrollWindow call to UpdateTopItem.  fix
+       Prev/Next/PrevPage/NextPage/Home/End index calculation.  Fixes #78559.
+
+2006-06-06  Mike Kestner  <mkestner@novell.com>
+
+       * CheckedListBox.cs : rebuild check collection on Add.  Fixes #78426.
+
+
+2006-06-06  Jackson Harper  <jackson@ximian.com>
+
+       * Control.cs: Use the property (instead of the field) to get the
+       default cursor so it is instantiated correctly.
+       * InternalWindowManager.cs: The OS doesn't give us an NCPAINT with
+       resizes so we need to manually repaint the window decorations here.
+       - Set the titlebar button locations as soon as they are created,
+       otherwise they are not set correctly on win32.
+       
+2006-06-06  Chris Toshok  <toshok@ximian.com>
+
+       * CurrencyManager.cs (set_Position): call PullData before
+       OnCurrentChanged.
+       (AddNew): after calling IBindingList.AddNew, update our
+       listposition, and call OnCurrentChanged/OnPositionChanged (without
+       calling PullData).
+       (OnCurrentChanged): remove the call to PullData from here.
+       (OnItemChanged): remove the call to PushData from here.
+       (OnPositionChanged): change the test from == null to != null to
+       match the other methods.
+       (ListChangedHandler): the grossest part of the patch.  Implement
+       this such that it passes the unit tests in CurrencyManagerTest and
+       the output more or less matches that of MS's implementation.
+2006-06-06  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs : only update check state on single click.
+       * ThemeWin32Classic.cs : fix focus drawing for details view without
+       fullrowselect.  Fixes #78454.
+       * XplatUIX11.cs : fix for double click emission.
+
+2006-06-05  Jonathan Chambers  <jonathan.chambers@ansys.com>
+
+       * PropertyGridView.cs : Applied Atsushi's patch to fix
+       font dialog bug  (#78197).
+
+2006-06-05  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: Compute the next node for expanding/collapsing
+       correctly. We now factor in nodes without a NextNode
+       correctly. (Fixes somes cases in nunit-gui).
+       * InternalWindowManager.cs: Set the bounds when updating the
+       virtual position of a tool window.
+       
+2006-06-05  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs: rename cached_currencymgr to list_manager.
+       (set_CurrentCell): move SetCurrentCell code here, and clean it up
+       some.
+       (CurrentRow, CurrentColumn): single accessors so we can make the
+       cursor movement code a lot easier to understand.
+       (CurrentRowIndex): implement this in terms of CurrentRow.
+       (BeginEdit): clean this up a bit.
+       (CancelEditing): sort out the is_editing/is_changing/is_adding
+       stuff a little.
+       (EndEdit): minor changes.
+       (OnKeyDown): add a comment about a (most likely) unnecessary
+       check.
+       (OnMouseDown): cancel editing when we click on a row header.  And
+       use the CurrentRow setter, not CurrentCell.
+       (ProcessDialogKey): directly call ProcessGridKey.
+       (UpdateSelectionAfterCursorMove): factor out this common block of
+       code (it's used everywhere that we move the cursor by updating row
+       or column).
+       (ProcessGridKey): pretty substantial overhaul.  Use the
+       CurrentRow/CurrentColumn properties to make the code a lot more
+       readable.  Only use the CurrentCell property when we have to
+       modify both row and column at once.  Tab behavior is still broken,
+       and Delete is untested.
+       (Select): if we have no selected rows, set selection_start to
+       @row.
+       (EditCurrentCell): rename EditCell this.  It was only ever invoked
+       with CurrentCell as the arg, so drop the arg and rename it.
+
+       * DataGridColumnStyle.cs: clean up the constructors a little, and
+       drop CommonConstructor().
+
+       * DataGridTextBox.cs (.ctor): set accepts_return to true so we
+       actually get notified when the user hits it.
+       (ProcessKeyMessage): *substantially* simplify this method.
+       There's no reason (that I can see) for the textbox to be making
+       calls into the datagrid at all.  Remove all of them but the ones
+       for Enter handling.  those will take some more work.
+
+       * DataGridTextBoxColumn.cs (ConcedeFocus): implement this by
+       calling HideEditBox.
+       (HideEditBox): if we have an active textbox, render it invisible
+       without causing a re-layout of the datagrid.
+
+2006-06-05  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs : fix NRE crasher when focuseditem is cleared by
+       collection changes by resetting it to Items[0].  Fixes #78587.
+
+2006-06-05 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * MessageBox.cs: if the height of the text is larger than the icon_size,
+       use that. Fixes bug #78575.
+
+2006-06-05  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Fix line drawing when scrolling.  To do this each
+       node is basically responsible for drawing its entire horizontal
+       area.  When drawing a node it draws its parent node lines if
+       needed.
+       - Adjust the clip area to the viewport rectangle
+       - Fix Left/Right key handling to match MS. (It expand/collapses
+       and moves to parents/first child but does not move selection to
+       sibling nodes).
+       - Fix SetTop to work with new bound calculation code
+       - When scrollbars are no longer needed we need to reset scrolling
+       vars and recalculate the visible order so the redraw is correct
+       * TreeNode.cs: We can't expand/collapse nodes with no children.
+
+2006-06-03  John Luke  <john.luke@gmail.com> 
+
+       * X11DesktopColors.cs: dllimport the exact gtk and gdk versions
+       so the colors work without dev packages
+       
+2006-06-02  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs 
+         - Select: Implemented to just use activate. Seems to match MS 
+           behaviour closest. Documented to only do actual control walking 
+           based on it's parameters if in a container control so I moved 
+           the code there.
+         - Removed selection check logic from our internal Select() method
+       * ContainerControl.cs:
+         - Select: Moved selection logic from Control here, since MS documents
+           that containers obey the bool arguments. No longer calling base
+
+2006-06-02  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: If the selected node isn't changed when we get
+       focus update the previously selected node so that we see the
+       selection box.
+
+2006-06-02  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: restructure grab and general mouse event handling.
+       Make the composite control raise mouse events like it was a single
+       control for leaves/enters/motion/up/down events.  fix dropdown list
+       coordinate mangling and refactor it into the scrollbar subclass to
+       reduce code duplication.  Fixes #78282 #78361 and #78457.
+
+2006-06-02  Mike Kestner  <mkestner@novell.com>
+
+       * ScrollBar.cs: remove Capture setting/clearing, as it happens
+       automatically in the Control.WndProc.
+
+2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * FileDialog.cs: fix crash when running SharpChess, which sets the
+       FilterIndex to 2 with only one Filter.
+
+2006-06-01 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * ToolBar.cs: add SizeSpecified property.
+       * ToolBarButton.cs: when the ButtonSize is calculated by the container,
+       try to figure out our real size, otherwise fallback to what the
+       container says.
+
+2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (DefWndProc): WM_MOUSEWHEEL needs to be passed up
+       * Control.cs (WndProc): MS always calls the DefWndProc to pass
+         up the event
+
+2006-06-01  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: revamp the focus management in ListView.  It still
+       causes churn of LostFocus/GotFocus emissions on clicks, but it's
+       better than not handling focus at all.  Will revisit when pdb feels
+       the general focus handling is solid.  Fixes #78526.
+
+2006-06-01  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Set the default border style in the constructor.
+       - Move painting to use OnPaintInternal instead of capturing
+       WM_PAINT, this is the correct way of doing things
+       - UpdateBelow shouldn't invalidate the scrollbar area
+       - Cap the top on update below in case the node was above the top
+       of the viewport rectangle.
+       - ExpandBelow and Collapse below need to obey Begin/End Update.
+       * TreeNode.cs: Make is_expanded internal so the treenode
+       collection can change it without firing the whole event chain.
+       * TreeNodeCollection.cs: When clearing all the child nodes make
+       sure to recalc the visible order.
+       - Improve algo for remove the top node
+
+2006-06-01  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (SetFocus): Make sure we can handle re-entrancy due to
+         SendMessage directly calling window procedures, which in turn might
+         call SetFocus()
+
+2006-06-01  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: Don't handle WM_SETFOCUS if the same window already
+         has focus (works around X11 sending a FocusIn after our SetFocus)
+       * XplatUIX11.cs: Send KILLFOCUS before setting SETFOCUS on new window
+
+2006-06-01  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Mime.cs: Fix for the NET_2_0 build.
+         NameValueCollection needs StringComparer now.
+
+2006-05-31  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridDrawingLogic.cs (FromPixelToColumn): modify this to also
+       return (via an out parameter) the starting X of the column.
+       (UpdateVisibleColumn): track change to FromPixelToColumn.
+       (HitTest): add a ColumnResize case here.
+       (DrawResizeLine): new function, probably poorly named.
+
+       * DataGrid.cs (.ctor): get rid of cached_currencymgr_events.  We
+       only need to keep one reference.
+       (set_ListManager): same.
+       (OnMouseDown): call HitTest instead of grid_drawing.HitTest.
+       Also, add support for HitTestType.ColumnResize.
+       (OnMouseMove): add column resize behavior here, and change the
+       cursor to the correct one as we move around the datagrid.
+       (OnMouseUp): terminate the column resize if we're resizing.
+       (ProcessGridKey): from the MS docs, Alt-0 enters the null value
+       for the current cell.
+       (ConnectListManagerEvents): use cached_currencymgr.
+       (DisconnectListManagerEvents): fill this in, using
+       cached_currencymgr.
+       (SetCurrentCell): remove cached_currencymgr_events handling.
+       (SetDataMember): only call DisconnectListManagerEvents if
+       cached_currencymgr is != null.
+       (SetDataSource): same.
+       (OnListManagerCurrentChanged): cached_currencymgr_events ->
+       cached_currencymgr.
+
+2006-05-31  Jackson Harper  <jackson@ximian.com>
+
+       * BindingManagerBase.cs: Remove somedebug code that creeped into
+       SVN.
+       * TreeNode.cs: We get the indent level dynamically right now, so
+       don't track it as a member.
+       * TreeNodeCollection.cs: Make sure all nodes added to the list
+       have parents, treeviews/topnodes setup properly.
+       - Don't attempt to track indent level.
+
+2006-05-30  Jackson Harper  <jackson@ximian.com>
+
+       * BindingContext.cs: Create the currency manager tables here.
+       This allows us to more easily create null tables (when bad data
+       members are used), and more easily create related currency
+       managers.
+       * CurrencyManager.cs: All the table creation stuff is done by the
+       binding context now.
+       - Current should throw an exception if listposition is -1.
+       - CancelCurrentEdit/EndCurrentEdit, do nothing if the list hasn't
+       been bound yet.
+
+2006-05-30  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: allow reexpansion of zero-width column headers.
+       Fixes #78528.
+
+2006-05-28  Chris Toshok  <toshok@ximian.com>
+
+       * CurrencyManager.cs (get_Current): after the late binding
+       listposition = -1 fix, we need to guard against it here and return
+       null, otherwise we raise an exception (which is swallowed
+       elsewhere, and breaks datagrid databinding.)
+
+2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * MenuAPI.cs (ProcessMenuKey): We can legally get msg types other
+         than WM_SYSKEY, don't throw if get something unexpected (#78507)
+
+2006-05-26  Jackson Harper  <jackson@ximian.com>
+
+       * ControlPaint.cs:
+       * ThemeWin32Classic.cs: For color comparisons just use the ARGB
+       values, it's faster and it's all we care about (we don't care if
+       the names aren't equal).
+       * KeyboardLayouts.cs: Eliminate some dead code.
+       - Lazy init things
+       * X11Keyboard.cs: Lazy init keyboard detection.
+       - Cleanup access modifiers a little.
+
+2006-05-26  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: Once again, attempting to get layout just right.
+
+2006-05-26  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * LinkLabel.cs (CreateLinkPieces): Use MeasureString to calculate
+         the sizes of each link section, that will result in sizes that
+         match DrawString's layout (Fixes #78391)
+
+2006-05-27  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: If AddExtension property is true autocomplete the
+         extensions in SaveFileDialog correctly. Fixes bug #78453.
+         Set MyNetwork and MyComputer to "C:\" for windows. This should
+         fix part 8 of bug #78446 for now.
+
+2006-05-26  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs (ColumnStartedEditing): fill these in.  for now just
+       invalidate the current row header if we need to, but presumably
+       we'll invalidate the row corrsponding to the bounds or
+       editingControl.
+       (GridHScrolled): switch back to this method, as it's part of the
+       public api.  *sigh*.
+       (GridVScrolled): same.
+       (OnMouseWheel): hack up something that more or less works.  Call
+       GridHScrolled/GridVScrolled directly, instead of duplicating much
+       of their code here.
+       (EnsureCellVisibility): reinstate a bunch of this code, since we
+       can't just set the scrollbar Value and expect to do all the work
+       in the ValueChanged handler.  Also, Call Update() after scrolling
+       in one direction so the other XplatX11.ScrollWindow call has the
+       proper stuff in the proper places.
+       (EditCell): set is_editing to true before calling .Edit.
+
+       * DataGridTextBox.cs (set_IsInEditOrNavigateMode): just set it,
+       don't bother comparing first.
+       (OnKeyPress): call grid.ColumnStartedEditing before calling
+       base.OnKeyPress.  this will set is_changing and invalidate the row
+       header if necessary.
+       (ProcessKeyMessage): for WM_CHAR messages, call
+       ProcessKeyEventArgs directly.  swallow anything other than WM_CHAR
+       and WM_KEYDOWN.
+       
+       * DataGridBoolColumn.cs (Edit): don't set is_editing to true here.
+       it's done in the DataGrid.
+       (NextState): call grid.ColumnStartedEditing, which takes care of
+       invalidating the row header (and setting is_changing).
+
+       * DataGridTextBoxColumn.cs (Edit): don't set is_editing to true
+       here.  it's done in the DataGrid.
+
+2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * Control.cs: allow changing the cursor when the mouse position is
+       out of bounds but Capture is set.
+       * LinkLabel.cs: handle the case when the mouse button is pressed on the
+       linklabel but released somewhere else.
+
+2006-05-25  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: When we get focus if there is no selected node make
+       it the top node
+       - Remove some uneeded setup code from Draw.
+       * TreeNodeCollection.cs: If the tree doesn't have a top node when
+       a new node is inserted make the new node the top.
+       * XplatUIX11.cs:
+       * Timer.cs: Use Utc time so that no local time zone stuff needs to
+       be used (should be faster).
+       
+2006-05-25  Chris Toshok  <toshok@ximian.com>
+
+       * DataGrid.cs (EnsureCellVisibility): remove some code to fix a
+       problem with the last commit.
+
+2006-05-25  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBoxColumn.cs (ReleaseHostedControl): turns out we do
+       need the invalidate call here, while scrolling right-to-left via
+       the left arrow key (i.e. moving the editing cell while scrolling).
+
+       * DataGrid.cs (.ctor): remove the initialization of
+       ctrl_pressed/shift_pressed.  We no longer track them using key
+       up/down handlers, but by using Control.ModifierKeys.  Also, switch
+       to using ValueChanged handlers on the scrollbars instead of
+       Scrolled event handlers.  This simplifies a bunch of the scrolling
+       code.
+       (GridHValueChanged): rename from GridHScrolled, and change it to
+       work with the new event args.
+       (GridVValueChanged): same.
+       (OnMouseDown): initialize ctrl_pressed/shift_pressed here.
+       (OnMouseWheel): actually scroll the datagrid.  Don't change the
+       selected cell.
+       (ProcessGridKey): correct all the keyboard navigation stuff I
+       could find.  Ctrl up/down/left/right/home/end work now.
+       (EnsureCellVisibility): correct method name spelling.  Also,
+       simplify this a touch by not explicitly calling the
+       ScrollToRow/ScrollToColumnInPixels methods.  We just set the
+       scrollbar value.
+       (OnKeyUpDG): no need for this method now.
+       
+2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
+
+       * LinkLabel.cs: display the OverrideCursor when hovering the label.
+       Fixes bug #78392.
+
+2006-05-25  Chris Toshok  <toshok@ximian.com>
+
+       * ThemeWin32Classic.cs: fix datagrid clipping problems caused by
+       r61019.
+
+2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Application.cs: Moved setting of is_modal and closing to before
+         we create the control, to allow the event handlers called as a
+         result of creation affect closing. Also removed Gonzalo's previous
+         change to setting DialogResult, the behaviour has been moved to 
+         Form.ShowDialog()
+       * Form.cs: 
+         - ShowDialog(): Removed explicit creation of the form, let RunLoop
+           handle it instead
+         - ShowDialog(): If no dialog result is set, we need to return Cancel
+         - WM_CLOSE: Fire Closing/Closed events, and reset dialog result if
+           the close is cancelled
+
 2006-05-25  Jackson Harper  <jackson@ximian.com>
 
        * StatusBar.cs: We only need to update the sizes of the other
        panels when we have auto size contents.  Also we are only updating
        the contents of the panel, not the borders, so compensate for the
        border width (TODO: get this width from the theme somehow).
-
+       * TreeView.cs: Scrollable is true by default
+       - Use invalidate instead of refresh where needed
+       - Factor the scrollable value into scrollbar updating
+       - Update the scrollbars if the Scrollable property is altered
+       - Update the selected node if its ImageIndex is changed
+       - Handle null nodes in UpdateNode (mainly so we don't have to
+       check if selected is null when updating it
+       - Fix VisibleCount to use the ViewportRectangle so that scrollbars
+       are factored into the visible count
+       - Use VisibleCount for clarity in the code
+       - When the font is changed we need to recurse through all the
+       nodes and invalidate their sizes
+       
 2006-05-25 Gonzalo Paniagua Javier <gonzalo@ximian.com>
 
        * Application.cs: set the DialogResult to fixed when the main form is