git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@2513 
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
   - selection highlighting is a bit broken
 Improve speed! (See layout problem below!)
 
   - selection highlighting is a bit broken
 Improve speed! (See layout problem below!)
 
+  - wxlwindow needs to shrink scrollbar range when window contents get removed
+  - When selecting with the mouse, scroll window if pointer is outside.
+
 The following two probs can probably be fixed by adding the
 RecalculateLayout() method:
 Funny re-layout shows again in sample text.
 The following two probs can probably be fixed by adding the
 RecalculateLayout() method:
 Funny re-layout shows again in sample text.
 
       long width, height, descent;
 
       if(begin < 0) begin = 0;
       long width, height, descent;
 
       if(begin < 0) begin = 0;
-      if(end > m_Text.Length()) end = m_Text.Length();
-      
+      if( end > (signed)m_Text.Length() )
+         end = m_Text.Length();
       
       str = m_Text.Mid(0, begin);
       dc.DrawText(str, xpos, ypos);
       
       str = m_Text.Mid(0, begin);
       dc.DrawText(str, xpos, ypos);
 
    wxLayoutDataObject(void)
       {
          SetId("application/wxlayoutlist");
    wxLayoutDataObject(void)
       {
          SetId("application/wxlayoutlist");
-         m_format.SetAtom((GdkAtom) 222222);
+         //m_format.SetAtom((GdkAtom) 222222);
 
    {
       // found is only true if we are really over an object, not just
       // behind it
    {
       // found is only true if we are really over an object, not just
       // behind it
+      if(found && u && ! m_Selecting)
       {
          if(!m_HandCursor)
             SetCursor(wxCURSOR_HAND);
       {
          if(!m_HandCursor)
             SetCursor(wxCURSOR_HAND);
+            case WXK_INSERT:
+               Copy();
+               break;
             case WXK_DELETE :
             case 'd':
                m_llist->Delete(1);
             case WXK_DELETE :
             case 'd':
                m_llist->Delete(1);
             case 'v':
                Paste();
                break;
             case 'v':
                Paste();
                break;
+            case 'c':
+               Copy();
+               break;
+            case 'x':
+               Cut();
+               break;
 #ifdef WXLAYOUT_DEBUG
             case WXK_F1:
                m_llist->SetFont(-1,-1,-1,-1,true);  // underlined
 #ifdef WXLAYOUT_DEBUG
             case WXK_F1:
                m_llist->SetFont(-1,-1,-1,-1,true);  // underlined
                   Paste();
                break;
             case WXK_DELETE :
                   Paste();
                break;
             case WXK_DELETE :
+               if(event.ShiftDown())
+                  Cut();
+               else
+                  m_llist->Delete(1);
                break;
             case WXK_BACK: // backspace
                if(m_llist->MoveCursorHorizontally(-1)) m_llist->Delete(1);
                break;
             case WXK_BACK: // backspace
                if(m_llist->MoveCursorHorizontally(-1)) m_llist->Delete(1);
 
        @param labelfield field to use in statusbar for URLs/userdata labels, or -1 to disable
        @param cursorfield field to use for cursor position, or -1 to disable
    */
        @param labelfield field to use in statusbar for URLs/userdata labels, or -1 to disable
        @param cursorfield field to use for cursor position, or -1 to disable
    */
-   inline SetStatusBar(class wxStatusBar *bar,
+   void SetStatusBar(class wxStatusBar *bar,
                        int labelfield = -1,
                        int cursorfield = -1)
       {
                        int labelfield = -1,
                        int cursorfield = -1)
       {