Author: mkrueger
Date: 2008-02-19 10:40:15 -0500 (Tue, 19 Feb 2008)
New Revision: 96158

Modified:
   trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Tests/Mono.TextEditor.Tests.pidb
   
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
Log:
* Mono.TextEditor.Tests/Mono.TextEditor.Tests.pidb: Copy to primary
  clipboard is now lazy (Improves performance for large selections).

Modified: trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog
===================================================================
--- trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-19 
15:40:02 UTC (rev 96157)
+++ trunk/monodevelop/main/src/addins/Mono.Texteditor/ChangeLog 2008-02-19 
15:40:15 UTC (rev 96158)
@@ -1,5 +1,10 @@
 2008-02-19  Mike Krüger <[EMAIL PROTECTED]> 
 
+       * Mono.TextEditor.Tests/Mono.TextEditor.Tests.pidb: Copy to primary
+         clipboard is now lazy (Improves performance for large selections).
+
+2008-02-19  Mike Krüger <[EMAIL PROTECTED]> 
+
        * 
Mono.TextEditor.Tests/Mono.TextEditor.Tests.DefaultEditActions/InsertTabTests.cs,
          
Mono.TextEditor.Tests/Mono.TextEditor.Tests.DefaultEditActions/RemoveTabTests.cs:
          Added Remove tab tests.

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
===================================================================
--- 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
     2008-02-19 15:40:02 UTC (rev 96157)
+++ 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor/DefaultEditActions.cs
     2008-02-19 15:40:15 UTC (rev 96158)
@@ -794,6 +794,7 @@
                        }
                }
                
+                       
                void ClipboardGetFunc (Clipboard clipboard, SelectionData 
selection_data, uint info)
                {
                        SetData (selection_data, info);
@@ -930,21 +931,36 @@
                        }
                }
                
-               public void CopyData (TextEditorData data)
+               void CopyData (TextEditorData data, ISegment segment)
                {
-                       if (data.IsSomethingSelected && data.Document.Contains 
(data.SelectionRange)) {
-                               text = data.Document.GetTextAt 
(data.SelectionRange);
+                       if (segment != null) {
+                               text = data.Document.GetTextAt (segment);
                                rtf  = GenerateRtf (data);
                        } else {
                                text = rtf = null;
                        }
                }
+               public void CopyData (TextEditorData data)
+               {
+                       CopyData (data, data.SelectionRange);
+               }
                
+               TextEditorData data;
+               ISegment       selection;
+               
+               void ClipboardGetFuncLazy (Clipboard clipboard, SelectionData 
selection_data, uint info)
+               {
+                       CopyData (data, selection);
+                       ClipboardGetFunc (clipboard, selection_data, info);
+               }
+
                public void CopyToPrimary (TextEditorData data)
                {
+                       this.data      = data;
+                       this.selection = data.SelectionRange;
+                       
                        Clipboard clipboard = Clipboard.Get 
(CopyAction.PRIMARYCLIPBOARD_ATOM);
-                       CopyData (data);
-                       clipboard.SetWithData ((Gtk.TargetEntry[])TargetList, 
ClipboardGetFunc, ClipboardClearFunc);
+                       clipboard.SetWithData ((Gtk.TargetEntry[])TargetList, 
ClipboardGetFuncLazy, ClipboardClearFunc);
                }
                
                public override void Run (TextEditorData data)

Modified: 
trunk/monodevelop/main/src/addins/Mono.Texteditor/Mono.TextEditor.Tests/Mono.TextEditor.Tests.pidb
===================================================================
(Binary files differ)

_______________________________________________
Mono-patches maillist  -  Mono-patches@lists.ximian.com
http://lists.ximian.com/mailman/listinfo/mono-patches

Reply via email to