Please do not reply to this email- if you want to comment on the bug, go to the
URL shown below and enter your comments there.

Changed by [EMAIL PROTECTED]

http://bugzilla.ximian.com/show_bug.cgi?id=80994

--- shadow/80994        2007-03-18 21:02:54.000000000 -0500
+++ shadow/80994.tmp.7434       2007-03-18 22:44:01.000000000 -0500
@@ -1,13 +1,13 @@
 Bug#: 80994
 Product: Mono: Class Libraries
 Version: 1.2
 OS: Windows XP
 OS Details: Service Pack 2
-Status: RESOLVED   
-Resolution: FIXED
+Status: REOPENED   
+Resolution: 
 Severity: Unknown
 Priority: Major
 Component: Windows.Forms
 AssignedTo: [EMAIL PROTECTED]                            
 ReportedBy: [EMAIL PROTECTED]               
 QAContact: [EMAIL PROTECTED]
@@ -137,6 +137,38 @@
 
 Will this fix be included in the next release? This bug made some of
 my programs incompatible with mono.
 
 ------- Additional Comments From [EMAIL PROTECTED]  2007-03-18 21:02 -------
 This bug is now fixed in SVN.  Thanks for the report.
+
+------- Additional Comments From [EMAIL PROTECTED]  2007-03-18 22:44 -------
+Since I don't completely understand the code in TextControl.cs, 
+TextBoxBase.cs, etc., I may be wrong.
+
+While the bug is technically fixed (no more NullReferenceExeption), 
+the fix avoids the real problem. This has nothing to do with the 
+selection length. The problem is that, in the SelectionFont getter, 
+document.selection_start.tag has a wrong value. This is caused by the 
+fact that, in the SelectionFont setter, the same logic is used to set 
+both document.selection_start.tag and document.selection_end.tag. 
+This is wrong to be because when the selection starts between tags 
+the first tag in the selection is the one after the selection start 
+(as opposed to the last tag in the selection, which would be the one 
+before the selection end, if the selection ends between tags). So my 
+previous patch works only in this case.
+Here is test (if you want to have a NullReferenceException, change 
+SelectionLength = 1 to SelectionLength = 2).
+using System.Diagnostics;
+using System.Drawing;
+using System.Windows.Forms;
+class Test {
+       static void Main() {
+               RichTextBox t = new RichTextBox();
+               t.Text = "123";
+               t.SelectionStart = 1;
+               t.SelectionLength = 1;
+               Font f = new Font(FontFamily.GenericMonospace, 123);
+               t.SelectionFont = f;
+               Debug.Assert(t.SelectionFont.Size == f.Size);
+       }
+}
_______________________________________________
mono-bugs maillist  -  [email protected]
http://lists.ximian.com/mailman/listinfo/mono-bugs

Reply via email to