+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
+ we know when to fire OnMainFormClosed
+
+2006-05-16 Peter Dennis Bartok <pbartok@novell.com>
+
+ * Application.cs: Introduced sub-class to allow tracking of
+ threads and centralized triggering of the event mess for
+ ThreadExit, AppExit, etc.. (#76156)
+
+2006-05-16 Alexander Olk <alex.olk@googlemail.com>
+
+ * MimeIcon.cs:
+ - Do not return a null icon index value for a mime subclass.
+ Instead try the main mime type class too.
+ - Seems that some newer distributions don't have a link to some
+ gnome default icons anymore. So check the default gnome dir too.
+
+
+2006-05-16 Jackson Harper <jackson@ximian.com>
+
+ * MdiClient.cs: Don't paint the parent background image if we have
+ our own background image.
+
+2006-05-16 Peter Dennis Bartok <pbartok@novell.com>
+
+ * Control.cs:
+ - PerformLayout: Do not shrink space filled by DockStyle.Fill
+ controls, all filled controls are supposed to overlap (#78080)
+ - UpdateZOrder is supposed to update the control's z-order in the
+ parent's z-order chain. Fixed to behave like that
+ - BringToFront: Removed obsolete code
+ - SendToBack: Simplyfied
+ - SetChildIndex: Trigger layout calculations when Z-order changes
+ since layout is done by z-order
+
+2006-05-16 Chris Toshok <toshok@ximian.com>
+
+ [ fixes bug #78410 ]
+ * DataGrid.cs (set_AlternatingBackColor): use
+ grid_drawing.InvalidateCells instead of Refresh().
+ (set_BackColor): call grid_drawing.InvalidateCells.
+ (set_BackgroundColor): use Invalidate instead of Refresh.
+
+ * DataGridDrawingLogic.cs (InvalidateCells): new function, just
+ invalidate the cell area.
+
+2006-05-15 Chris Toshok <toshok@ximian.com>
+
+ [ fixes bug #78011 ]
+ * ThemeWin32Classic.cs (DataGridPaintRows): pass the clip argument
+ on to DataGridPaintRow.
+ (DataGridPaintRow): take a clip argument, and only draw the cells
+ which intersect it. same with the not_usedarea.
+
+ * Theme.cs (DataGridPaintRow) add @clip parameter.
+
+ * DataGrid.cs (ScrollToColumnInPixels): simplify, use
+ XplatUI.ScrollWindow.
+ (ScrollToRow): same.
+
+ * DataGridDrawingLogic.cs (UpdateVisibleColumn): fix corner case
+ with last column which was causing a gray swath to appear with the
+ XplatUI.ScrollWindow code.
+
+2006-05-15 Chris Toshok <toshok@ximian.com>
+
+ * ListBox.cs (HorizontalScrollEvent): in the non-multicolumn case,
+ use XplatUI.ScrollWindow.
+ (VerticalScrollEvent): use XplatUI.ScrollWindow.
+
+2006-05-15 Peter Dennis Bartok <pbartok@novell.com>
+
+ * TextBoxBase.cs: Added handling of middle-button paste for X11. (#78375)
+
+2006-05-15 Peter Dennis Bartok <pbartok@novell.com>
+
+ * Cursors.cs: For X11, read NWSE and NESW cursors from our resource
+ file since there are no equivalent X11 cursors
+
+2006-05-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * MonthCalendar.cs : DateTimePicker should reflect selected date
+ on mouse*up*, not mouse*down*. Fixed originally reported part of
+ bug #76474.
+
+2006-05-15 Atsushi Enomoto <atsushi@ximian.com>
+
+ * TabControl.cs : When argument index is equal or more than tab
+ count, just ignore. Fixed bug #78395.
+
+2006-05-15 Peter Dennis Bartok <pbartok@novell.com>
+
+ * Control.cs: Dispose all child controls when control is diposed (#78394)
+
+2006-05-14 Alexander Olk <alex.olk@googlemail.com>
+
+ * ColorDialog.cs: Finally it is possible to select the color with
+ the text boxes
+
+2006-05-14 Alexander Olk <alex.olk@googlemail.com>
+
+ * PrintDialog.cs: Fix typo
+
+2006-05-14 Alexander Olk <alex.olk@googlemail.com>
+
+ * PrintDialog.cs: PrintDialog is not resizable
+ * ThemeWin32Classic.cs: Draw non links in LinkLabel with the correct
+ color. Made some ToolBar drawing methods protected virtual.
+
+2006-05-13 Jordi Mas i Hernandez <jordimash@gmail.com>
+
+ * PrintDialog.cs: Implementation of the PrintDialog
+
+2006-05-12 Chris Toshok <toshok@ximian.com>
+
+ * ScrollBar.cs (set_Value): don't use Dirty/Invalidate to move the
+ thumb, instead use MoveThumb. This has the side effect of making
+ most of the other thumb moving machinery use MoveThumb as well.
+ (OnHandleCreated): pass false for @dirty to UpdateThumbPos, as we
+ need to actually invalidate the rectangle where the new thumb will
+ go.
+ (MoveThumb): use XplatUI.ScrollWindow to move the thumb around.
+ We force an Update() after, so it's not as fast as it could be,
+ but at least there's zero flicker and no droppings.
+ (OnMouseMoveSB): in the thumb dragging case, use MoveThumb.
+ (UpdateThumbPos): add another argument (dirty), which says whether
+ or not to calculate/add dirty regions which we later invalidate.
+ For cases where we know we're going to use MoveThumb, we pass
+ false for this. Otherwise, pass true.
+
+2006-05-12 Jackson Harper <jackson@ximian.com>
+
+ * ThemeWin32Class.cs: Fixes for alignment and icon rendering in
+ the status bar.
+
2006-05-12 Peter Dennis Bartok <pbartok@novell.com>
* XplatUI.cs, XplatUIDriver.cs, XplatUIOSX.cs: Added new SetClipRegion
(set_Maximum): same.
(set_Minimum): same.
(set_SmallChange): same.
-
+ (OnMouseUpSB): remove the call to refresh when releasing the
+ thumb. We shouldn't need it.
+
2006-05-12 Miguel de Icaza <miguel@novell.com>
* StatusBar.cs (UpdatePanel): If the panel being refreshes has the