2008-08-12 Carlos Alberto Cortez <calberto.cortez@gmail.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index 2400b255458f84d7b36d06bb91137cf29b6cb755..eab40845ad05da8cfb7859bbdbaf8d5e0f5b5e27 100644 (file)
@@ -1,3 +1,479 @@
+2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com> 
+
+       * XplatUIX11.cs: Handle the obscured regions while scrolling using
+       GraphicsExpose event, processing it just after we copy the scrolled
+       area. This ensures that the next calls to ScrollWindow will copy
+       regions already updated, and the scrolling will be smooth. Also remove
+       the code that was trying to detect the obscured regions, since we are
+       not using it anymore (too slow).
+
+2008-08-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: Fix the -temporary- broken selection in ListBox for
+       MultiExtended mode, by separating some logic between the ctrl/shift
+       handling. Also ignore any MouseMove events generated together with
+       MouseDown events - we are only interested in the real motion event.
+       Fixes part of #414963.
+
+2008-08-08  Jonathan Pobst  <monkey@jpobst.com>
+
+       * DataGridViewCell.cs: Guard against an AOORE when checking if a cell
+       is selected.  [Fixes bug #414143]
+
+2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * GridEntry.cs: Check if current property is a ICustomTypeDescriptor 
+       and not the parent one (the propertyowner). Fixes the behavior of 
+       GetConverter/GetEditor.
+       [Fixes bug #415452]
+
+2008-08-07  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * PropertyGrid.cs: Refresh should also repopulate the PropertyGrid.
+       [Fixes part of bug #415452]
+
+2008-08-05  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * GridEntry.cs: ITypeDescriptorContext should be relative to the parent 
+       GridEntry, not the current.
+       [Fixes bug #413896]
+
+2008-08-04  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TextBoxBase.cs: De-internalize max_length field.
+       * RichTextBox.cs: Use base.MaxLength - both TextBoxBase and RichTextBox 
+       share the same logic.
+       [Fixes bug #414454]
+
+2008-08-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: Selection changes made in the MouseDown handler should
+       use the *Core versions of selection in SelectedIndices collection,
+       since the SelectedIndexChanged/SelectedValueChanged events are fired
+       until we get a MouseUp event, and thus we need to separate the logic
+       from the events, as done in the keyboard navigation. Also, fire those
+       selection events from keyboard navigation in SelectionMode.None, even
+       if we don't have a selection, as .Net does.
+
+2008-08-01  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripButton.cs, ToolStripMenuItem.cs: Guard against a NRE my
+       last change introduced when an item is clicked but isn't on a toolstrip.
+
+2008-07-31  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBindingHelper.cs: When looking for an object's properties, check
+       if it implements ICustomTypeDescriptor, in which case we should
+       resolve the propertu based on its GetProperties method, not in its
+       actual properties. This is what .Net seems to do.
+       Fixes a UsingWebBrowser problem during initialization.
+
+2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStrip.cs: Fix an NRE caused by clicking on a ToolStripButton
+       sitting on a MenuStrip.
+
+2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripButton.cs: If we "click" a top button on a menustrip that has
+       no children with the keyboard, we need to release the keyboard capture.
+       [Fixes bug #413567]
+
+2008-07-31  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripMenuItem.cs: If we "click" a top level menu item that has
+       no children with the keyboard, we need to release the keyboard capture.
+       [Fixes bug #413567]
+
+2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Made ScrollBar rendering less strict so it supports
+       the GTK+-based implementation of VisualStyles.
+       * ThemeWin32Classic.cs: Exposed various layout values for use in the
+       GTK+-based implementation of VisualStyles: ListViewGetHeaderHeight(Font),
+       ListViewGetHeaderHeight(), ProgressBarChunkSpacing, ProgressBarGetChunkSize(),
+       ProgressBarGetChunkSize(int), ProgressBarDefaultHeight,
+       TrackBarGetThumbSize(), TrackBarVerticalTrackWidth,
+       TrackBarHorizontalTrackHeight.
+
+2008-07-31  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * TabControl.cs: Added hot style handling for the scroll buttons.
+       right_slider_state, left_slider_state are now of type PushButtonState to
+       allow for a hot state. Added tracking of the mouse button being held down
+       on a tab page. Extracted HasHotElementStyles, RightScrollButtonArea,
+       LeftScrollButtonArea.
+       * Theme.cs, ThemeWin32Classic.cs: Removed TabControlGetLeftScrollRect,
+       TabControlGetRightScrollRect.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: Check for null GrabControl on ProcessMnemonic to prevent 
+       runtime errors.
+
+2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * Form.cs: Ensure that we reset the shown_raised flag after 
+       the form is closed, so that we raise the show events the next 
+       time the form is shown.
+       [Fixes bug #413141]
+
+2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * Form.cs: Ensure closing events are raised only once.
+       [Fixes bug #413143]
+
+2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * X11Keyboard.cs: Refactor SendKeyboardInput to accept the keycode, 
+       so that we can successfully generate the LParam in-place instead of 
+       in KeyEvent, which isn't called for e.g. MainMenu. Fixes keyboard 
+       navigation for menus.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: When montion don't set the keyboard navigation state to 
+       'navigating'. Fixes bug #411356.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       [Fixed remaining issues of #406773 (#1)]
+       * MenuItem.cs: UpdateMenuItem added to track the shotcut changes.
+
+       * MenuAPI.cs: Don't create tracker on TrackPopupMenu, it will be created in
+       MainMenu (already done) and ContextMenu creation.
+
+       * ContextMenu.cs: Create tracker on construction. 
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: For ContextMenu set GrabControl on TrackPopupMenu, it make
+       possible to instantiate MenuTracker without GrabControl.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: On constructor dont set the GrabControl for non ContextMenu.
+
+       * MainMenu.cs: Set GrabControl on SetForm using current form.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: Chage grab_control to GrabControl and make it public.
+
+2008-07-30  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: Check if menu is activated before deactivate it in 
+       ProcessShortcut.
+
+2008-07-30  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TableLayoutStyleCollection, TableLayoutStyle.cs, RowStyle.cs, 
+       ColumnStyle.cs: 
+       Make the TableLayoutStyle owned by the the TableLayoutPanel, so that:
+        - One style instance can only participate in a single style collection.
+        - Styles can request their owner to layout whenever their properties 
+        change.
+        [Fixes bugs #412583 and #412582]
+
+2008-07-29  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * X11Keyboard.cs: Implement the generation of the LParam for 
+       all keyboard messages.
+       [Fixes bug #378728]
+
+2008-07-29  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ListBox.cs: Don't let the user set TopIndex so high that it
+       scrolls up far enough to show empty items.
+       [Fixes bug #412728]
+
+2008-07-29  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ThemeWin32Classic.cs: Actually commit the changes to fix #410880
+       (I'm an idiot and forgot to commit the actual changes, as well as
+       specify the right file, which is this one, not ListView.cs).
+
+2008-07-28  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Don't draw ListViewSubItem instances from
+       DrawListViewItem - we need to reuse the main item's drawing for the
+       first sub item in case owner draw is true, but wants the system to
+       do the default draw for the first sub item, without incurring in a
+       recursion problem.
+       Fixes #410880.
+
+2008-07-28  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripButton.cs: Update Checked for CheckOnClick before
+       raising the Click event.  [Fixes bug #412505]
+
+2008-07-28  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * Form.cs: Remove some seems leftover code for non-TopLevel's 
+       CreateParams, which is breaking ClientSize sizing, because it 
+       removes the border window styles.
+
+2008-07-27  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * PropertyGrid.cs: Invalidate the View when the PropertyTab 
+       changes.
+
+2008-07-25  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * WebBrowser.cs: Removed debug output.
+
+2008-07-25  Jonathan Pobst  <monkey@jpobst.com>
+
+       * FileDialog.cs: Apply patch from Ernesto to clean up some
+       dialog messages.
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TableLayoutPanel.cs: Perform layout on GrowStyle change, so 
+       that the change has an immediate effect.
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * ScrollableControl.cs: Update PerformLayout calls to include 
+       provide the name of the property that changed.
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TableLayoutPanel.cs: Draw relative to the DisplayRectangle 
+       location. Fixes drawing of border and cell borders if scrollable.
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * ScrollableControl.cs: Perform layouting after the AutoScroll 
+       properties have changed, so that the changes have immediate 
+       effect.
+       [Fixes bug #409090]
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * XplatUIX11.cs: Non Client area is actually Client such in the 
+       case of NotifyIcon, so double check WholeWindow == ClientWindow 
+       when adding an expose.
+       [Fixes bugs #324237 and #357022]
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TableLayoutPanel.cs: Invalidate after layouting, so that we 
+       repaint the cell borders.
+
+2008-07-25  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * PropertyGridTextBox.cs: Stop filtering messages prior to our 
+       disposal to avoid unexpected ObjectDisposedExceptions.
+
+2008-07-24  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * TableLayoutPanel.cs: Layout on Row/Column count change.
+
+2008-07-22  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * ListViewItem.cs: Changed binary serialization to match MS. Fixes
+       bug #409351.
+       * PictureBox.cs: When ImageLocation is set to null or an empty string,
+       only set image to null if it was previously initialized from an url
+       (or using ImageLocation). In ImageLocation, load specified image
+       asynchronously if WaitOnLoad is false. Added support for local file
+       paths to LoadAsync, and added missing argument check.
+
+2008-07-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * DateTimePicker.cs: 
+       * ThemeWin32Classic.cs: Add a editing capability to DateTimePicker, in
+       order to set the value as required (which means: when selection
+       changes for a part being edited, and not before that if not needed).
+       Also use an enum to describe which part are we using, and use the
+       selection as a property in PartData, in order to notify the
+       DateTimePicker owner that we need to end the current edit.
+       Fixes #383462.
+
+2008-07-17  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * PropertyGridTextBox.cs: Validation should be performed only if we 
+       are focused. We can lose focus for example if the Return key is used 
+       to set the entry and there is an error. When the message box is 
+       displayed we would have validate on click in the message box.
+
+2008-07-16  Ivan N. Zlatev  <contact@i-nz.net>
+
+       * GridEntry.cs: Checking for DesignerSerializaitonVisibility.Content 
+       in order to determine that we are expandable is wrong. There was a bug, 
+       now fixed, in TypeDescriptor that was causing the wrong converter to be 
+       returned which caused GetPropertiesSupported == false in most cases.
+       [Fixes bug #409027]
+
+2008-07-15  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ImageList.cs: Fix ICollection.CopyTo implementation for
+       ImageListCollection.  [Fixes bug #409169]
+
+2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * MenuAPI.cs, ToolStripDropDown.cs: Use VirtualScreen instead of
+       WorkingArea so that menus can appear on the second monitor
+       when one has dual monitors.
+
+2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TextBox.cs: Auto complete stuff in WndProc should be 2.0 only.
+       Fixes build.
+
+2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TextBox.cs: Implement navigation support for auto complete in
+       TextBox, as well as refactor the code to show the auto complete window
+       when receiving a WM_CHAR message, instead of TextChanged, since
+       autocomplete itself should be able to set the Text a lot of times and
+       finally only typing should show it, not changes from code.
+
+2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TabControl.cs: When expanding the selected tab, don't adjust the
+       width if alignment is Right, since it has a different offset than 0,
+       as opposed to the other alignments.
+       Fixes the selected tab not being painted at all with alignment = Right
+       and using FillToRight size mode.
+
+2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TreeView.cs: Fix ToString to match MS.  [Fixes bug #409029]
+
+2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * NumericUpDown.cs: Apply patch from Andy Hume to clamp out of range
+       values from the textbox to the boundary values.  [Fixes bug #409026]
+
+2008-07-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TreeNodeCollection.cs: We were copying one too many elements when
+       doing our array copy.  Fixes a crash when RemoveAt is called.
+       [Fixes bug #408999]
+
+2008-07-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TabControl.cs: When doing the layout and need to call FillRow -using
+       FillToRight size mode-, use the overload receiving a bool param
+       indicating whether we need to do a vertical or horizontal calculation.
+       Fixes part of #399583.
+
+2008-07-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TextBox.cs: When painting, use the value returned by
+       GetLastVisibleItem instead of using the cached last_item field, since
+       there could be a desynchronization between the layout and the
+       painting. Fixes a AOOR exception in auto complete mode.
+
+2008-07-12  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Disabled when Application.VisualStyleState is
+       NonClientAreaEnabled until our VisualStyles is modified to allow it.
+
+2008-07-12  Gert Driesen  <drieseng@users.sourceforge.net>
+
+       * TextBox.cs: Fixed NRE in LostFocus. Avoid unnecessary initialization.
+
+2008-07-11  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * TextBox.cs: When focus is lost, if the auto complete listbox is
+       visible, hide it.
+
+2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * InternalWindowManager.cs: HandleSizing: Implemented a better minimum
+       tracking size for tool windows.
+       * Theme.cs, ThemeWin32Classic.cs : Extracted
+       ManagedWindowSpacingAfterLastTitleButton.
+
+2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ThemeEngine.cs: Remove the clearlooks, nice, and old gtk themes.
+       They are bit-rotted and have always been listed as "unsupported".
+
+2008-07-11  Jonathan Pobst  <monkey@jpobst.com>
+
+       * PictureBox.cs: Don't crash if ImageLocation is set to "" or null.
+
+2008-07-11  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Fixed minimized window height adjustment.
+
+2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ListBox.cs: Make sure last_item_visible gets reset before we try
+       to do a layout due to scrollbars appearing or disappearing.
+       [Fixes bug #408139]
+
+2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XPlatUIWin32.cs: Change GetMenuOrigin to calculate borders better
+       for different window themes.  [Fixes bug #339140]
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeWin32Classic.cs: Implemented minimized window border width properly,
+       in ManagedWindowBorderWidth.
+
+2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * InternalWindowManager.cs: Change MouseMove to take a point, so
+       we can use the same point later on.
+       * MdiWindowManager.cs: Store point sent to MouseMove so we can
+       later reset to it.  On Windows, the Cursor.Position had already
+       changed by the time we were resetting to it.
+       [Fixes bug #363239]
+
+2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * InternalWindowManager.cs: Ignore mouse actions on TitleButtons that
+       are inactive.
+       * ThemeWin32Classic.cs: Disable or hide MinimizeBox/MaximizeBox if
+       user requested it.
+       [Fixes bug #398686]
+
+2008-07-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * MdiWindowManager.cs: Double-clicking on the title bar should not
+       maximize a MDI form if MaximizeBox = false.
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Fixed a warning.
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Fixed warnings and formatted.
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Removed ManagedWindowGetMenuButtonSize. The base
+       implementation produces a better result.
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * ThemeVisualStyles.cs: Adjusted height and border rendering for minimized
+       windows.
+
+2008-07-10  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * Application.cs: Added VisualStylesEnabled because XplatUI.ThemesEnabled
+       cannot be used from the ThemeEngine constructor.
+       * ThemeEngine.cs: Changed the XplatUI.ThemesEnabled check to
+       Application.VisualStylesEnabled because it does not work on X11.
+
+2008-07-09  Jonathan Pobst  <monkey@jpobst.com>
+
+       * StatusBar.cs: Apply patch from Andy Hume to remove lazy instantiation
+       that we did not always check for, as well as fixes to the IList
+       implementations.  [Fixes bug #402703]
+
+2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
+
+       * IDeviceContext.cs: Added Dispose.
+
 2008-07-09  George Giolfan  <georgegiolfan@yahoo.com>
 
        * Control.cs: Added OnSizeInitializedOrChanged.