]> git.saurik.com Git - wxWidgets.git/commitdiff
patch from Mike Oliver <oliver@math.ucla.edu> to have correct position in wxTree...
authorVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Nov 2000 13:38:56 +0000 (13:38 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Thu, 16 Nov 2000 13:38:56 +0000 (13:38 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@8743 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/generic/listctrl.cpp
src/generic/treectlg.cpp

index 0aa77ae8db53a04b0920c2c26107ec7cb2801ed6..761e8f4d9dcdeca680a0311fbc73d36c98b08e5e 100644 (file)
@@ -316,7 +316,9 @@ public:
     void RefreshLine( wxListLineData *line );
     void OnPaint( wxPaintEvent &event );
     void HilightAll( bool on );
-    void SendNotify( wxListLineData *line, wxEventType command );
+    void SendNotify( wxListLineData *line,
+                     wxEventType command,
+                     wxPoint point = wxDefaultPosition );
     void FocusLine( wxListLineData *line );
     void UnfocusLine( wxListLineData *line );
     void SelectLine( wxListLineData *line );
@@ -1204,8 +1206,8 @@ void wxListHeaderWindow::DoDrawRect( wxDC *dc, int x, int y, int w, int h )
     
     x = dc->XLOG2DEV( x );
     
-       gtk_paint_box (m_wxwindow->style, GTK_PIZZA(m_wxwindow)->bin_window, state, GTK_SHADOW_OUT,
-               (GdkRectangle*) NULL, m_wxwindow, "button", x-1, y-1, w+2, h+2);
+    gtk_paint_box (m_wxwindow->style, GTK_PIZZA(m_wxwindow)->bin_window, state, GTK_SHADOW_OUT,
+                   (GdkRectangle*) NULL, m_wxwindow, "button", x-1, y-1, w+2, h+2);
 #else
     const int m_corner = 1;
 
@@ -1747,11 +1749,18 @@ void wxListMainWindow::HilightAll( bool on )
     }
 }
 
-void wxListMainWindow::SendNotify( wxListLineData *line, wxEventType command )
+void wxListMainWindow::SendNotify( wxListLineData *line,
+                                   wxEventType command,
+                                   wxPoint point )
 {
     wxListEvent le( command, GetParent()->GetId() );
     le.SetEventObject( GetParent() );
     le.m_itemIndex = GetIndexOfLine( line );
+
+    // set only for events which have position
+    if ( point != wxDefaultPosition )
+        le.m_pointDrag = point;
+
     line->GetItem( 0, le.m_item );
     GetParent()->GetEventHandler()->ProcessEvent( le );
 //    GetParent()->GetEventHandler()->AddPendingEvent( le );
@@ -1882,8 +1891,8 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
 
         if (m_dragCount != 3) return;
 
-        int command = wxEVT_COMMAND_LIST_BEGIN_DRAG;
-        if (event.RightIsDown()) command = wxEVT_COMMAND_LIST_BEGIN_RDRAG;
+        int command = event.RightIsDown() ? wxEVT_COMMAND_LIST_BEGIN_RDRAG
+                                          : wxEVT_COMMAND_LIST_BEGIN_DRAG;
 
         wxListEvent le( command, GetParent()->GetId() );
         le.SetEventObject( GetParent() );
@@ -1936,7 +1945,8 @@ void wxListMainWindow::OnMouse( wxMouseEvent &event )
 
     if (event.RightDown())
     {
-        SendNotify( line, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK );
+        SendNotify( line, wxEVT_COMMAND_LIST_ITEM_RIGHT_CLICK,
+                    event.GetPosition() );
         return;
     }
 
index 0a49c02a4c030149b3b560bad707e121ecf4ccaf..cb0a92a6153782da785d1bbe3dba0dbc5ca80df2 100644 (file)
@@ -2449,7 +2449,9 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
             wxTreeEvent nevent(wxEVT_COMMAND_TREE_ITEM_RIGHT_CLICK, GetId());
             nevent.m_item = (long) item;
             nevent.m_code = 0;
-            nevent.m_pointDrag = wxPoint(x, y);
+            CalcScrolledPosition(x, y,
+                                 &nevent.m_pointDrag.x,
+                                 &nevent.m_pointDrag.y);
             nevent.SetEventObject(this);
             GetEventHandler()->ProcessEvent(nevent);
         }
@@ -2502,7 +2504,9 @@ void wxGenericTreeCtrl::OnMouse( wxMouseEvent &event )
                 wxTreeEvent nevent( wxEVT_COMMAND_TREE_ITEM_ACTIVATED, GetId() );
                 nevent.m_item = (long) item;
                 nevent.m_code = 0;
-                nevent.m_pointDrag = wxPoint(x, y);
+                CalcScrolledPosition(x, y,
+                                     &nevent.m_pointDrag.x,
+                                     &nevent.m_pointDrag.y);
                 nevent.SetEventObject( this );
                 GetEventHandler()->ProcessEvent( nevent );
             }