2008-01-16 Jonathan Pobst <monkey@jpobst.com>
[mono.git] / mcs / class / Managed.Windows.Forms / System.Windows.Forms / ChangeLog
index ecb0bf551317ed9225c652a7c3467fe2a6925339..d60fc590ebbc7ad9c2b776193110b67b74ad5e01 100644 (file)
@@ -1,3 +1,548 @@
+2008-01-16  Jonathan Pobst  <monkey@jpobst.com>
+
+       * FolderBrowserDialog.cs: If we cannot interpret the user's requested
+       SelectedPath, just display the default dialog instead of crashing.
+       [Fixes bug #348989]
+
+2008-01-16  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Avoid some unecessary invalidation calls when
+       carbon signals us to redraw.  Fixes another portion of the flickering bug
+
+2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
+
+       * Form.cs: Prevent the MdiParent property to be set when value is the same
+       as value already set. Fixes bug #328019.
+
+2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
+
+       * Form.cs: Don't set mdi_parent as null when mdi window close is prevented, 
+       it prevents NRE when closing mdi child windows. Fixes bug #325211.
+
+2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
+
+       * InternalWindowManager.cs: Invalidade close button after mouse up when 
+       mdi form is prevented to close.
+
+2008-01-16  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MdiClient.cs: Fix the minimum bounds on child window sizes when cascade,
+       thanks to Andy Hume. Fixes bug #325433.
+
+2008-01-16  Andreia Gaita <avidigal@novell.com>
+
+       * LinkLabel.cs: Reset focused_index when resellecting the control.
+       Fixes #323190
+
+2008-01-15  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Rework Grab/Ungrab handling to send some needed 
+       messages.
+
+2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Form.cs: Change 2 more AutoScaleBaseSize calculation to round instead
+       of truncate.
+
+2008-01-15  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ContainerControl.cs: Setting AutoScaleMode to anything should set
+       Form.AutoScale to false.
+       * Form.cs: Setting AutoScale to true should set AutoScaleMode to None.
+       AutoScaleBaseSize should be changed on Font change unless it has been
+       explicitly set.
+       [Fixes bug #353827]
+
+2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuAPI.cs: On instance of MenuTracker check if source control is
+       ToolStripOverflow and use properly method to find form.
+       [Fixes bug #338511]
+
+2008-01-15  Everaldo Canuto  <ecanuto@novell.com>
+
+       [Fixes bug #323241 Transparent toolbar support]
+
+       * ToolBar.cs: Define ToolBarStyles.TBSTYLE_FLAT in CreateParams when toolbar
+       is flat.
+
+       * Control.cs: Paint background as transparent in case of TBSTYLE_FLAT is
+       defined in control style to mimic win32 behavior.
+
+       * ThemeWin32Classic.cs: Don't paint background for flat apparence toolbar, 
+       it will be transparent.
+
+2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
+
+       * XplatUIStructs.cs: Implement ToolBarStyles to use in Style property of
+       CreateParams for ToolBar controls.
+
+2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Form.cs, XplatUI.cs, XplatUIDriver.cs, XplatUIX11.cs: Forms with
+       FixedToolWindow, SizeableToolWindow, or None for border styles have
+       different minimum sizes than regular forms.  Implemented to fix
+       regression in PDN with toolbox being too wide.
+
+2008-01-14  Andreia Gaita <avidigal@novell.com>
+
+       * HtmlElementCollection.cs: Implemented
+
+       * HtmlElement.cs: Implemented:
+         - All
+         - InnerHtml
+         - InnerText
+         - Id
+         - Name
+         - FirstChild
+
+       * HtmlDocument.cs: Implemented GetElementsByTagName.
+
+2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Screen.cs: Stub BitsPerPixel to always return 32.
+
+2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Form.cs: Implement RestoreBounds.
+
+2008-01-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * RichTextBox.cs, ToolStrip.cs: Fix some typos pointed out by
+       Sebastien and his fabulous magical problem-finding machine:
+       Gendarme.  Also put a MonoTodo on AutoWordSelect since we don't
+       respect the value set.
+
+2008-01-14  Everaldo Canuto  <ecanuto@novell.com>
+
+       * Form.cs: In WmWindowPosChanged call base.WndProc including when state is
+       minimized. Fixes bug #325122 for Win32. Thanks  Srikanth Madikeri.
+
+2008-01-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * X11Dnd.cs: Since we don't propagate the WM_LBUTTONUP/WM_RBUTTONUP
+       messages (to match .Net), we need to remove the capture ourselves.
+
+2008-01-11  Jonathan Pobst  <monkey@jpobst.com>
+
+       * MenuAPI.cs: If we get an Alt-F4, release our capture so Windows
+       will process the message and close our window.
+       [Fixes bug #324328]
+
+2008-01-10  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Clip the Graphics context to the invalid area
+       tracked in the Hwnd.  Only invalidate the dirty region to the Carbon
+       window manager.
+
+2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Form.cs: Enforce the Form minimum size in SetBoundsCore.  Fixed
+       failing test.
+
+2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * XplatUIX11.cs: Set a minimum window size and enforce it.  Even though
+       Linux doesn't care, having a minimum matches MS and keeps the window
+       from becoming too small to use window decorations.
+       [Fixes bug #338996]
+
+2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ThemeWin32Classic.cs: Tie CheckBox/RadioButton focus rectangles to
+       ShowFocusCues.  Make focus rectangles fit the text instead of the whole
+       control.  [Fixes bug #325419]
+
+2008-01-10  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ComboBox.cs: Guard against an NRE if the user open a new form from a
+       SelectedIndexChanged event.  This closes the combobox dropdown, and we
+       were trying to dispose it.  [Fixes bug #352830]
+
+2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs, Form.cs: Implement the necessary semantics for
+       ShowFocusCues.  All paint code will need to check Control.ShowFocusCues
+       to determine if a focus rectangle should be drawn.
+       * PropertyGrid.cs: Fix property visibility to match override.
+       * ThemeWin32Classic.cs: Use ShowFocusCues for Button.
+
+2008-01-09  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Application.cs: Use GetCommandLineArgs to calculate ExecutablePath.
+       [Fixes bug #323552]
+
+2008-01-09  Geoff Norton  <gnorton@novell.com>
+       
+       * XplatUICarbon.cs: Scroll windows in the correct direction.
+
+2008-01-09  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs: Track all created utility windows so we can hide them
+       when the app is deactivated or spaces is enabled.
+
+2008-01-08  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListViewItem.cs: Cosmetic fix - When calculating layout for item, don't add an
+       extra separation pixel for the label rect origin if SmallImageList is
+       null, and thus we don't need that separation between icon and label
+       rects.
+       Patch by Ernesto Carrea.
+       Fixes # 340195.
+
+2008-01-08  Jonathan Pobst  <monkey@jpobst.com>
+
+       * StatusStrip.cs: Invalidate after completing a layout.  The base
+       OnLayout does this, but we don't call the base.
+       * ToolStripItem.cs: Revert the previous change to invalidate after
+       the item moves.
+       [Fixes bug #351341 better.]
+
+2008-01-07  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  WM_DESTROY is a teardown of a single window
+       not a notification to exit the application.  Listen for WM_QUIT
+       instead.
+
+2008-01-07  Andreia Gaita <avidigal@novell.com>
+
+       * HtmlDocument.cs: Fix case on GetElementById (interface changed)
+
+2008-01-07  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripItem.cs: If the bounds of an item changes, invalidate it
+       so it can repaint at the correct location.
+       [Fixes bug #351341]
+
+2008-01-06  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListControl.cs: SelectedValue should return a null value if
+       SelectedIndex is -1. Also, when setting it, it should throw an
+       ArgumentNullException if the value is null, as well as taking
+       into account the String.Empty value, instead of ignoring it (we have
+       tests for that now).
+       Fixes part of #324286.
+
+2008-01-06  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextBoxBase.cs, TextControl.cs: Patch from Luke Page to ensure
+       SelectionStart is updated after pressing enter.  Fixes bug #351918.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextControl.cs: Revert a piece r92316 that prevented the fix
+       from working when there were multiple tags in the text box.
+       Fixes bug #351881.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextControl.cs: Apply patch from Luke Page that prevents an
+       NRE when determining the beginning of a paragraph.
+       Fixes bug #351886.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextBoxBase.cs: Apply patch from Luke Page that ensures the
+       caret gets moved with clicking away from a selected block of
+       text.  Fixes bug #351885.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextControl.cs: Apply patch from Luke Page that takes line
+       alignment into account for mouse selection, so that center and
+       right aligned text can be selected.
+       Fixes bug #351881.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * RichTextBox.cs: Apply patch from Luke Page that fixes some caret
+       issues after loading an RTF file by using the correct line feeds.
+       Fixes bug #351841.
+
+2008-01-05  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextControl.cs: When deleting multiple line selections, we need
+       to invalidate every line beginning at the first line of the selection.
+       Patch from Luke Page fixes bug #351791.
+
+2008-01-04  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListControl.cs: When getting a CurrencyManager.PositionChanged
+       event, don't set SelectedIndex if the number of items is 1. This is
+       because, for the first item, PositionChanged is fired _before_
+       ItemChanged (the place where we actually populate the items), and
+       leave us in a temporary invalid state (since items collection is
+       empty).
+       Fixes #349655.
+
+2008-01-04  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Create native toolwindows instead of
+       the managed drawing ones.
+
+2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * LineTag.cs: If the line doesn't have any characters, return
+       0 for GetCharIndex.  Fixes an AOORE exception after certain
+       caret movements.  Fixes bug #351683.  Patch by Luke Page.
+
+2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextBoxBase.cs: Apply patch from Luke Page so when backspace
+       is hit when there is selected text, only the selected text gets
+       deleted, not the character in front of the selection as well.
+       Fixes bug #351578.
+
+2008-01-03  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ComboBox.cs: When the values are displayed, calculate the
+       ComboListBox scrollbar's LargeChange based on the visible area's
+       height and  the actuall ItemHeight, instead of calculating it
+       based on MaxDropItems value, since it's not used by our _current_ 
+       2.0 profile.
+       Fixes #332366.
+
+2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs, TextControl.cs:
+       Patch from Luke Page that fixes issues with font colors and styles
+       not showing up in a readonly RichTextBox.  Fixes bug #324354.
+
+2008-01-03  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Line.cs, RichTextBox.cs, TextControl.cs: Another awesome patch
+       from Luke Page.  This one fixes bug #349926.
+
+2007-12-30  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * CurrencyManager.cs: Actually fire the 2.0 ListChanged event when
+       an item in the IBindingList source changes with
+       ListChangedType.ItemAdded. Ignore for now firing the event for other
+       changes, since we want to have tests for those cases as well.
+
+2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextBoxBase.cs: Don't store a 1x1 Bitmap for every TextBox
+       created.
+
+2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextBoxTextRenderer.cs: Implement a cache for measuring each
+       character.  This is effective because the typical usage of a
+       TextBox is with a limited amount of fonts and characters, and
+       the current implementation of TextBox measures everything one
+       character at a time.  Another second or two speedup for bug #347238.
+
+2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Rewrite the Font getter to only query the parent's
+       Font property once instead of twice.  Since this operation is
+       recursive, the queries were growing exponentially as the control
+       tree got deeper.  Another second or two speedup for bug #347238.
+
+2007-12-28  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Avoid setting a parent (and more importantly, updating
+       the zorder of all its children) if the parent is already correct in
+       WmShowWindow.  Decreases the startup time of the test case on bug
+       #347238 from 35 seconds to 11 seconds.
+
+2007-12-27  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * X11Dnd.cs: When the dnd operation has started and we are 
+       in the dnd loop, don't dispatch either WM_LBUTTONUP nor WM_RBUTTONUP.
+       This is done to match .Net, which doesn't send those messages after
+       dnd operation was completed/cancelled.
+       Fixes #349922.
+
+2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStrip.cs: Previous change should be != null, not == null.
+       Thanks Gert!
+
+2007-12-27  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStrip.cs: Guard against an NRE after ItemClicked is called, the
+       user may have moved the mouse off the current item during the event.
+
+2007-12-23  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: In ItemControl.ItemsMouseMove, try to avoid
+       calling GetItemAt for every MouseMove event by also taking into
+       account whether any mouse button is pressed (probably dragging); 
+       if so, we can call GetItemAt, and if not, try to not call it 
+       (GetItemAt can be quite expensive when used with a large number of items).
+
+2007-12-22  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Implement -finally- support for dnd, by calling
+       OnItemDrag as needed. Also, remove the dnd TODO, and add myself to the
+       authors list ;-).
+       * ListViewInsertionMark.cs: Implement NearestIndex method, by doing a
+       simple calculation of distances for all the items in the owner
+       listview.
+
+2007-12-21  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Ensure that we create WindowMapping handles
+       for windows that are originally created as invisible.  Fixes missing
+       main window in paint-mono.
+
+2007-12-21  Geoff Norton  <gnorton@novell.com>
+
+       * XplatUICarbon.cs:  Register our D&D handler.  Register our custom
+       subclass handler for com.novell.mwfview subclassing HIView.  Implement
+       Pasteboard and Dnd methods.
+
+2007-12-20  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: When we got focus, give focus to first item if there
+       wasn't any pervious focused item. Also update navigation to depend on
+       SelectedIndex rather than FocusedItem, just as .Net does.
+       Fixes #349174.
+
+2007-12-19  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: Both FindString and FindStringExact methods must do an
+       case insensitive search, should allow the last valid index to be
+       passed in the overload taking an initial index, and should also
+       continue searching from the top back to the specified index when it
+       reaches the bottom.
+
+2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TextControl.cs: Apply patch from Luke Page that fixes a scrolling
+       redraw issue, and allows RichTextBox to draw colored text even while
+       disabled or readonly.
+
+2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
+
+       * RichTextBox.cs, TextBoxBase.cs: Apply patch from Luke Page that
+       disallows cut/paste in a readonly textbox, adds support for Shift-Insert,
+       and doesn't grey text in a disabled RichTextBox.
+
+2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
+
+       * RichTextBox.cs: Apply patch from Luke Page that adds better support
+       for many RTF commands: quad alignment, separate formatting for blocks
+       inside groups, and ParDef support.  Makes the test case from bug #324589
+       look much better.
+
+2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
+
+       * LineTag.cs: Fix an error in the new Draw method that caused
+       a crash when rendering the document on bug #324589.
+
+2007-12-19  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Line.cs, LineTag.cs, RichTextBox.cs, TextBoxBase.cs,
+       TextControl.cs: Apply patch from Luke Page that adds support
+       for URL links in RichTextBox.
+       [Fixes enhancement #342516]
+
+2007-12-18  Everaldo Canuto  <ecanuto@novell.com>
+
+       * MenuItem.cs: When cloning menuitem clone also name and tag properties for
+       2.0 profile. Thanks Ernesto Carrea and Luke Page. Fixes bug #340289.
+
+2007-12-18  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: When a key gets pressed, try to find a string
+       if the key is a character or a digit.
+       Fixes #343971.
+
+2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TableLayoutPanel.cs: Remove some unused variables.
+
+2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
+
+       * DateTimePicker.cs: Commit patch from Luke Page that ensures
+       we don't end up at an invalid date when we click the up/down
+       spinner to change the month or year.  Fixes bug #348682.
+
+2007-12-17  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Application.cs: Calling Exit in 2.0 should chain to the
+       Exit (CancelEventArgs) version so it can be cancelled.
+       * Form.cs: Create a flag to allow raising the Closing
+       events to be skipped.  We raise them once in Application.Exit
+       and don't want to raise them again when the Form is actually
+       closed.  [Fixes bug #349073]
+
+2007-12-16  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ToolStripDropDown.cs: Guard against an NRE when there
+       hasn't been a mainform set in the application context.
+       [Fixes bug #349108]
+
+2007-12-15  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: When SetBoundsCore gets called, besides
+       calling UpdateScrollBars, update the value of
+       last_visible_index, since we could need to show more items
+       than before, and we need to let the paint routines know that.
+       Fixes #344445.
+
+2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListView.cs: Add DesignerSerializationVisibility attribute to
+       InsertionMark property.
+       * ListViewItem.cs: Add same attribute to Position property.
+
+2007-12-14  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListViewItem.cs: .ctor (SerializationInfo, StreamingContext)
+       is 2.0 only.
+
+2007-12-14  Jonathan Pobst  <monkey@jpobst.com>
+
+       * ThemeWin32Classic.cs: Don't draw the background on a
+       flat button if there is a background image.
+       [Fixes bug #348649]
+
+2007-12-13  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: If we remove the item currently selected,
+       remove it not only from SelectedItems, but also
+       resetting selected_index. Moreover, set focused_item to Items.Count - 1 if 
+       the items count decreased and focused_item has bigger value than that.
+
+2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
+
+       * Control.cs: Perform our layout after we resize ourselves
+       if we had to adjust our AutoSize.  Missed commit for bug
+       #346246.
+
+2007-12-13  Jonathan Pobst  <monkey@jpobst.com>
+
+       * TableLayoutPanel.cs: Override GetPreferredSizeCore so
+       we can provide an implementation of AutoSize.
+       [Fixes bug #346246]
+
+2007-12-12  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListBox.cs: Add the internal overload Sort (bool paint),
+       to indicate whether we actually need a paint or we will
+       call Refresh ourselves. This way we don't request a paint
+       _before_ having an updated and valid layout.
+       Fixes #347233.
+
+2007-12-12  Andreia Gaita <avidigal@novell.com>
+
+       * XPlatUIX11.cs: Send paint messages when updating a systray icon
+       * NotifyIcon.cs: Invalidate the window before doing a systray change so it is
+       properly invalidated. 
+       Fixes #324237
+
+2007-12-10  Carlos Alberto Cortez <calberto.cortez@gmail.com>
+
+       * ListViewItem.cs: When using a .ctor taking a ListViewGroup,
+       don't simply assign it to our internal group field, but instead 
+       use our Group property, which should do all the neccessary work
+       required to support groups. Fixes an issue reported to me (mail) by a 
+       guy using this new feature.
+
 2007-12-11  Jonathan Pobst  <monkey@jpobst.com>
 
        * Control.cs: Use Scale instead of ScaleControl to ensure the