Skip to content

Commit 5476dff

Browse files
committed
changed button argument in OnMouseHover, OnMouseMove, OnMouseLeave, OnMouseEnter to the current pressed mouse button;
added treeView.OnItemDrag; fixed issue when Highcharts interval was 0;
1 parent f86e04a commit 5476dff

File tree

4 files changed

+48
-26
lines changed

4 files changed

+48
-26
lines changed

Controls/Highcharts/Highchart.cs

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -293,13 +293,16 @@ private void DrawSeries(Graphics g, Series s)
293293
var sdataCount = s.data.Count;
294294
if (sdataCount == 0) return;
295295

296-
int categoriesIndex = 0;
297-
double prevValue = 0;
296+
var categoriesIndex = 0;
297+
var prevValue = 0D;
298298
var areaColor = Color.FromArgb(255 / series.Count, s.color);
299-
double valueRange = cachedPlotMax - cachedPlotMin;
299+
var valueRange = cachedPlotMax - cachedPlotMin;
300300

301-
float pointInterval = s.pointInterval;
302-
float xStep = cachedCategoriesStep;
301+
var pointInterval = s.pointInterval;
302+
if (pointInterval <= 0)
303+
return;
304+
305+
var xStep = cachedCategoriesStep;
303306
if (sdataCount > 1)
304307
xStep = (float)cachedPlotWidth / (sdataCount - 1);
305308
xStep *= pointInterval;

System/Windows/Forms/Application.cs

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ public class Application
2323
private static DragDropRenderHandler dragRender;
2424
private static MouseEvents mouseEvent = 0;
2525
private static MouseButtons mouseButton = 0;
26+
private static MouseButtons mouseButtonLastPressed;
2627
private static Control mouseLastClickControl;
2728
private static float mouseWheelDelta;
2829
private static bool mousePositionChanged;
@@ -154,12 +155,24 @@ public void ProccessMouse(MouseEvents mE, float mX, float mY, MouseButtons mButt
154155

155156
mousePositionX = mX;
156157
mousePositionY = mY;
157-
158-
//if (_mouseLastClickControl != null && _mouseEvent == MouseEvents.None && _mouseMovePosition != mousePosition)
159-
// _ProcessControl(mousePosition, _mouseLastClickControl, true);
160158

161-
if (mE == MouseEvents.None && !mousePositionChanged)
162-
return;
159+
switch (mE)
160+
{
161+
case MouseEvents.None:
162+
if (mousePositionChanged == false)
163+
return;
164+
break;
165+
166+
case MouseEvents.Down:
167+
mouseButtonLastPressed = mButton;
168+
break;
169+
170+
case MouseEvents.Up:
171+
if (mouseButtonLastPressed == mButton)
172+
mouseButtonLastPressed = MouseButtons.None;
173+
break;
174+
}
175+
163176

164177
// Dispose context first.
165178
for (int i = Contexts.Count - 1; i >= 0; i--) // We want to dispose child context first.
@@ -250,10 +263,10 @@ public void Run(Control control)
250263
public void Update()
251264
{
252265
// Update hovered control.
253-
if (hoveredControl != null && dragndrop == false)
266+
if (hoveredControl != null/* && dragndrop == false*/)
254267
{
255268
var mclient = hoveredControl.PointToClient(Control.MousePosition);
256-
var hargs = new MouseEventArgs(MouseButtons.None, 0, mclient.X, mclient.Y, 0);
269+
var hargs = new MouseEventArgs(mouseButtonLastPressed, 0, mclient.X, mclient.Y, 0);
257270
hoveredControl.RaiseOnMouseHover(hargs);
258271
if (updateHoveredControl)
259272
hoveredControl.RaiseOnMouseMove(hargs);
@@ -266,7 +279,7 @@ public void Update()
266279
{
267280
hoveredControl.hovered = false;
268281
hoveredControl.mouseEntered = false;
269-
hoveredControl.RaiseOnMouseLeave(new MouseEventArgs(MouseButtons.None, 0, 0, 0, 0));
282+
hoveredControl.RaiseOnMouseLeave(new MouseEventArgs(mouseButtonLastPressed, 0, 0, 0, 0));
270283
if (dragndrop)
271284
hoveredControl.RaiseOnDragLeave(EventArgs.Empty);
272285
}
@@ -281,7 +294,7 @@ public void Update()
281294

282295
controlAtMouse.hovered = true;
283296
controlAtMouse.mouseEntered = true;
284-
controlAtMouse.RaiseOnMouseEnter(new MouseEventArgs(MouseButtons.None, 0, mclient.X, mclient.Y, 0));
297+
controlAtMouse.RaiseOnMouseEnter(new MouseEventArgs(mouseButtonLastPressed, 0, mclient.X, mclient.Y, 0));
285298
if (dragndrop)
286299
controlAtMouse.RaiseOnDragEnter(new DragEventArgs(new DataObject(dragData), 0, mclient.X, mclient.Y, DragDropEffects.None, dragControlEffects));
287300
}

System/Windows/Forms/TreeView.cs

Lines changed: 15 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -199,6 +199,12 @@ protected virtual void OnDrawNode(DrawTreeNodeEventArgs e)
199199
{
200200
if (onDrawNode != null) onDrawNode(this, e);
201201
}
202+
protected virtual void OnItemDrag(ItemDragEventArgs e)
203+
{
204+
var handler = ItemDrag;
205+
if (handler != null)
206+
handler(this, e);
207+
}
202208
protected override void OnKeyDown(KeyEventArgs e)
203209
{
204210
base.OnKeyDown(e);
@@ -338,17 +344,15 @@ protected override void OnMouseHover(EventArgs e)
338344
}
339345
protected override void OnMouseMove(MouseEventArgs e)
340346
{
341-
if (drag)
342-
{
343-
if (dragPosition.Distance(e.Location) > 4)
344-
{
345-
var itemDrag = ItemDrag;
346-
if (itemDrag != null)
347-
itemDrag(this, new ItemDragEventArgs(e.Button, dragNode));
348-
dragPosition = Point.Empty;
349-
drag = false;
350-
}
351-
}
347+
base.OnMouseMove(e);
348+
349+
if (drag == false) return;
350+
if (dragPosition.Distance(e.Location) < 4) return;
351+
352+
OnItemDrag(new ItemDragEventArgs(e.Button, dragNode));
353+
354+
dragPosition = Point.Empty;
355+
drag = false;
352356
}
353357
protected override void OnMouseWheel(MouseEventArgs e)
354358
{

Unity/API/UnityGdi.cs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -391,7 +391,9 @@ public SizeF MeasureString(string text, Font font)
391391
var labelSkin = UE.GUI.skin.label;
392392
int guiSkinFontSizeBuffer = GUI_SetFont(labelSkin, font);
393393

394-
var size = labelSkin.CalcSize(new UE.GUIContent(text));
394+
textContent.text = text;
395+
396+
var size = labelSkin.CalcSize(textContent);
395397

396398
labelSkin.fontSize = guiSkinFontSizeBuffer;
397399

0 commit comments

Comments
 (0)