In .:
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 8b5ac42336e9e79e45bf9e15009c84e4dd3399c4..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
+       hidden or destroyed while being modal.
+
+2006-05-25  Miguel de Icaza  <miguel@novell.com>
+
+       * Theme.cs: Use Tangoified messagebox icons. 
+
+       (GetSizedResourceImage): Also cope with width = 0 and do not
+       trigger a warning in that case (0 means "give me your icon from
+       the resouce, no special size needed).
+
+2006-05-25  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Application.cs: Leave runloop if the the main modal form is 
+         hidden (fixes #78484)
+
+2006-05-25  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * BindingContext.cs : reject null datasource in Contains() and
+         Item[].
+       * CurrencyManager.cs : check data_member validity when data_source
+         is dataset. When it is late binding, the initial position is -1.
+
+2006-05-24  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNodeCollection.cs: Dont't recalculate the visible order on
+       inserted nodes that aren't visible.  This changes the
+       max_visible_order which confuses scrollbar settings.
+       - Use the enumerator to get the prev node instead of duplicating
+       code.
+       * TreeView.cs: Use new method for setting scrollbar values
+       - Don't set the bounds every time the scrollbar is updated
+       - When updating below the root node use an invalidate instead of a
+       refresh to prevent the child controls (scrollbars) from being
+       refreshed. (UpdateBelow still needs to be reworked anyways).
+       - Reenable SetBottom now that visible orders are set correctly,
+       added some debug code incase we ever get bad values there again.
+       - Set the scrollbar max to 2 less then the max value, this
+       compensates for the max value being one above the node count, and
+       for scrollbars adding one extra "notch".
+       - When drawing image nodes if there is an imagelist we draw the
+       first image in the list if the supplied image index is out of the
+       image list's bounds.
+       
+2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: Don't blindly cache hwnd.ClientRect, reset it when 
+         we receive a size change from the WM (Fixes #78503)
+
+2006-05-24  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIWin32.cs, XplatUIX11.cs: Refresh when setting the Clip 
+         rectangle (Fixes #78501)
+
+2006-05-24  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * ButtonBase.cs: 
+         - Fixed MouseUp, MouseDown and MouseMove to treat mouseevent.Button 
+           as a bitfield.
+         - Fixed MouseMove to no longer switch pressed state unless the left
+           mouse button is pressed. Atsushi provided the original patch (#78485)
+         
+2006-05-24  Jackson Harper  <jackson@ximian.com>
+
+       * ScrollBar.cs: New internal methods that allow us to change a
+       couple values on the scrollbar (the most common case is maximum
+       and large change) without getting multiple invalidates.
+
+2006-05-24  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridBoolColumn.cs (Abort): revert back to the saved setting.
+       (Edit): save off the original state in oldState, and set
+       grid.is_editing to true.
+       (OnKeyDown): abort editing if escape is pressed.  also, call
+       NextState if space is pressed.
+       (OnMouseDown): call NextState.
+       (NextState): factor out shared code from OnKeyDown and OnMouseDown
+       here.  Also, only invalidate the row header once (on the initial
+       is_changing switch) to save on redraws.
+
+2006-05-24  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBoxColumn.cs (Commit): only call SetColumnValueAtRow
+       if the value in the cell is different than it was before.  This
+       keeps us from triggering a layout when we move around a datarid
+       with a highlighted cell.
+       (Edit): suspend layout when creating/positining the text box, and
+       resume passing false so we don't ever actually re-layout.
+       (ReleaseHostedControl): same.
+       (EnsureTextBox): reformat slightly, and set WordWrap to false.
+
+       * DataGridTextBox.cs (ProcessKeyMessage): it's not true that all
+       control-key sequences should go to the datagrid - remove that
+       lock.  Also, modify the conditions under which we move between
+       cells when moving the cursor within a cell, and remove the "this"
+       and "base" from field accesses.  We weren't even consistent, given
+       they all were in the base class.
+
+2006-05-24  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * Binding.cs : (.ctor)
+         An obvious NRE fix for BindingTest.CtorNullTest().
+
+2006-05-23  Chris Toshok  <toshok@ximian.com>
+
+       * TextBoxBase.cs (get_Text): don't add a trailing newline, add
+       them between lines.  This fixes some quirks editing cells in the
+       datagrid.
+
+2006-05-23  Jackson Harper  <jackson@ximian.com>
+
+       * TreeView.cs: Use begin/end update when doing expand/collapse all
+       so that we don't get flicker on the scrollbar.
+
+2006-05-23  Jackson Harper  <jackson@ximian.com>
+
+       * TreeNode.cs: Bounds are computed 'on the fly' now.  This allows
+       treenode calculations to be independant of the painting code. To
+       do this nodes track a visible order which is calculated by the
+       treeview.
+       - Call new methods for expanding/collapsing nodes.  These methods
+       use scrollwindow so we don't have to update everything below the
+       node.
+       * TreeView.cs: Refactored drawing and scrolling code.  We don't
+       need to update nodes when drawing anymore or calculate scrollbar
+       stuff.
+       - Added new methods for expanding/collapsing nodes. These methods
+       use ScrollWindow so as to not have to redraw all the nodes below.
+       * TreeNodeCollection.cs: Recalc visible order and scrollbars when
+       we add/remove nodes or sort.
+       - Handle removing the selected and the top node properly.
+
+2006-05-23  Chris Toshok  <toshok@ximian.com>
+
+       * DataGridTextBoxColumn.cs (Edit): set grid.is_editing to true.
+       maybe this should actually happen in the datagrid code?
+       (EndEdit): no need to invalidate anything, given that
+       ReleaseHostedControl causes the datagrid to relayout, which
+       invalidates everything anyway.
+
+       * DataGrid.cs (set_CurrentCell): remove duplicate check (it's also
+       in SetCurrentCell).
+       (set_SelectionBackColor): call InvalidateSelection instead of
+       Refresh.
+       (set_SelectionForeColor): same.
+       (BeginEdit): Flesh this out a bit.
+       (CancelEditing): only do any of this if we're editing/adding.
+       (EndEdit): same.
+       (OnMouseDown): there's no need to cancel editing here, it's done
+       in SetCurrentCell.
+       (SetCurrentCell): only invalidate the current row header if it's a
+       different row than the new one.
+       (ShiftSelection): fix this to work like MS does.
+       (ResetSelection): factor out the invalidation of selected_rows to
+       InvalidateSelection.
+       (SetDataSource): cancel any editing that's going on.
+
+       * DataGridColumnStyle.cs
+       (IDataGridColumnStyleEditingNotificationService.ColumnStartedEditing):
+       call the non-interface version.
+
+       * ThemeWin32Classic.cs (DataGridPaintColumsHdrs): intersect the
+       header rectangle with the clip rectangle so we don't redraw the
+       entire header for just a small area.  Gets rid of the last flicker
+       when horizontally scrolling.
+       (DataGridPaintRow): same.
+
+2006-05-23  Mike Kestner  <mkestner@novell.com>
+
+       * ListViewItem.cs: remove size for line hack from LargeIcon layout.
+       * ThemeWin32Classic.cs: don't draw line.  it's really the top of a
+       poorly placed checkbox on the MS control.  Fixes Alex's unfiled
+       Critical bug report.
+
+2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * PictureBox.cs: Fixed broken ControlStyles. Unit test no longer fails,
+         and this fixes #78493
+
+2006-05-23  Miguel de Icaza  <miguel@novell.com>
+
+       * Theme.cs (GetSizedResourceImage): Scale images if the proper
+       size is not found.  
+       
+       * FileDialog.cs: Do not change the background for the side bar as
+       it wont work nicely with the theme, and also reduces the artifacts
+       in rendering the icons (which I want to fix too).
+
+       * MimeIcon.cs (ResourceImageLoader): Load images from assembly
+       resources, not resgen resources. 
+
+       (PlatformDefaultHandler): Pull images using the new API.
+
+2006-05-23  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Hwnd.cs (Dispose): Remove any pending exposures. XEventQueue holds
+         a reference to the hwnd and will not remove it unless there are
+         no pending exposures (fixes #78341)
+       * XplatUI.cs: Improved debug
+
+2006-05-23  Atsushi Enomoto  <atsushi@ximian.com>
+
+       * MenuAPI.cs : don't handle OnClick event when it was not the left
+         button. Fixed bug #78487.
+
+2006-05-23  Mike Kestner  <mkestner@novell.com>
+
+       * MenuAPI.cs: fix placement of submenus for multi-row menu bars, and
+       prefer submenus to the top menu for item lookup, to avoid popping down
+       top-row items.
+
+2006-05-23  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Rewrote CPCPDrawScrollButton to drop
+         Graphics.FillRectangle as the visual results are really bad (even
+         on win). We now draw perfect arrows (and perfect shadows when the
+         scrollbar is disabled). Simplified CPDrawGrid. CPDrawGrid now uses
+         Pen.DashPattern to draw the dots of each line.
+
+2006-05-22  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Update the filename combobox when navigating through
+         the ListView with the cursor keys. Fixes part 7 of bug #78446.
+
+2006-05-22  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: raise SelectedIndexChanged on keyboard selection.
+       Fixes #78463.
+
+2006-05-22  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: Refresh in EndUpdate to pick up all the dropped Paint
+       requests. Fix a misspelled parameter and a copy paste exception error
+       in Select.
+
+2006-05-22  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * ThemeWin32Classic.cs: Changed DefaultFont emSize from 8.25 to 8
+         to get the same width/height (5/13) on X11 as the default font has on
+         win32. This means that our DefaultFont emSize is smaller than the 
+         the MS SWF equivalent (even thought the width/height stays the same)
+
+2006-05-20  Jackson Harper  <jackson@ximian.com>
+
+       * MdiClient.cs:
+       * MdiWindowManager.cs:
+       * InternalWindowManager.cs: Make sure to use the border width from
+       the theme.
+
+2006-05-20  Jordi Mas i Hernandez <jordimash@gmail.com>
+
+       * PrintDialog.cs: Implements printer details
+
+2006-05-19  Alexander Olk  <alex.olk@googlemail.com>
+
+       * FileDialog.cs: Added focus handling for PopupButtonPanel.
+         Fixes part 1 and 2 of bug #78446
+
+2006-05-19  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs (SetWindowPos): Recalculate client area size on resizes
+         instead of sticking to the first ever calculated value
+
+2006-05-19  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: fix mouse motion selection to use MousePosition and
+       PointToClient, since Capture is set. Fixes #78344.
+
+2006-05-19  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: match MS behavior in Details view where items are not
+       drawn if Columns.Count == 0. 
+       * ThemeWin32Classic.cs: only highlight ListView selection if focused.
+       Use a separate pen to draw the check, since changing the width affects
+       the box as well.  Fixes #78454.
+
+2006-05-18  Miguel de Icaza  <miguel@novell.com>
+
+       * ListView.cs: ArgumentOutOfRangeException, single versions of the
+       exception should throw the name of the invalid argument.
+
+       * FileDialog.cs (OnClickOpenSaveButton): Avoid crash in open if
+       there are no files listed. 
+
+2006-05-18  Jackson Harper  <jackson@ximian.com>
+
+       * ThemeWin32Classic.cs: Don't use endcaps, they mess the drawing
+       up.
+
+2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Control.cs: Brought back our old UpdateZOrder method as a private
+         function and switched our calls from UpdateZOrder to the new one.
+         This fixes the Paint.Net canvas disappearing bug.
+
+2006-05-18  Jackson Harper  <jackson@ximian.com>
+
+       * Theme.cs:
+       * ThemeWin32Classic.cs:
+       * InternalWindowManager.cs: Move the drawing into the theme,
+       expose everything the theme should need from the window manager.
+
+2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs (DefWndProc): WM_SETCURSOR: Assign the return value 
+         from the call to NativeWindow to avoid walking up the parent chain
+         further than needed (speeds up setting cursors and avoids setting
+         the wrong cursor if a parent has another cursor defined)
+       * Cursor.cs: When loading an icon as cursor, MS uses the center of
+         the icon as hotspot, not what's contained as hotspot in the icon
+         file. This fixes the perceived drawing offset seen with Paint.Net
+       
+2006-05-18  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs: 
+         - Store the calculated rectangle in Hwnd object and use it when 
+           setting the client size
+         - Force Toolwindows to always be type Dock, to ensure they're on top
+
+2006-05-18  Mike Kestner  <mkestner@novell.com>
+
+       * ComboBox.cs: first pass at ComboBox rework.  Layout is more
+       consistent with MS positioning.  IntegralHeight, ItemHeight, Sizing.
+       Correctly initialize textcontrol and ListBox on DropDownStyle changes. 
+       Substantial refactoring to remove confusing nested classes. Coding
+       standard and Get+Set->property refactorings.  Shift to index based
+       highlighting in ComboListBox instead of constantly using IndexOf and
+       Items[]. Add invalidations on resize for DropDownList to fix ugliness
+       in FileDialog growth.  Draw borders manually since Simple mode needs
+       to look like two independent controls.  Make listbox border
+       conditional to DropDownStyle.  Improved OwnerDraw support.
+
+2006-05-18  Sebastien Pouliot  <sebastien@ximian.com>
+
+       * PaintEventArgs.cs: For 2.0, check for a null Graphics in the .ctor. 
+       Don't set the disposed graphics to null, so we can throw the "right"
+       exception if the graphics is reused later (added a flag to avoid 
+       double disposing). Some behaviours are different under 2.0 and are
+       filled under bug #78448.
+
+2006-05-18  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * Control.cs: When double-buffering is enabled, we need to reset
+         our graphics context between paint calls. Otherwise, any 
+         transformations and other alterations on the context will 
+         become cumulative (#77734)
+
+2006-05-18  Mike Kestner  <mkestner@novell.com>
+
+       * ListView.cs: do focused item selection like MS on clicks. 
+       Rework focus handling for ItemControl so LostFocus invalidates as
+       well.
+       * ThemeWin32Classic.cs: only draw focus rectangle for ListViewItems if
+       the ListView ItemControl has focus.
+
+2006-05-17  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs: If client_window ends up being width or height zero
+         due to border settings, move it off window inside whole_window (#78433)
+
+2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
+
+       * Mime.cs: Shrink the mime file cache correctly.
+
+2006-05-17  Alexander Olk  <alex.olk@googlemail.com>
+
+       * ThemeWin32Classic.cs: Readded button focus drawing code. (#78429)
+
+2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * XplatUIX11.cs (AddExpose): More sanity checks
+
+2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * XplatUIX11.cs:
+         - AddExpose: Don't add expose ranges outside the size of our
+           window
+         - Cast opacity values to Int32 to avoid crashes with certain
+           values
+         - Added disabled code paths that protect against illegal cross-
+           thread painting (Developers.exe)
+
+2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
+
+       * ProgressBar.cs: Invalidate the control when it's resized
+         since block size is based on control size. (#78388)
+
+2006-05-16  Miguel de Icaza  <miguel@novell.com>
+
+       * DataGrid.cs (SetDataBinding): per the discussion on irc, instead
+       of setting the incoming argument to the "reset" value, we set the
+       this.datamember to string.empty (before we were invalidating the
+       incoming data).   
+
+       Fixes 78420
+
+2006-05-16  Peter Dennis Bartok  <pbartok@novell.com> 
+
+       * Form.cs: Only apply transparency settings after the form
+         is created. (Fixes #77800)
+
 2006-05-16  Peter Dennis Bartok  <pbartok@novell.com>
 
        * ApplicationContext.cs: Grab the HandleDestroyed event so