(svn r942) -Merged branch/network back into the trunk

This commit is contained in:
truelight
2004-12-04 17:54:56 +00:00
parent c90bba35a2
commit d6a1f3e412
76 changed files with 7839 additions and 2850 deletions

View File

@@ -170,6 +170,7 @@ void DrawOverlappedWindow(Window *w, int left, int top, int right, int bottom)
void CallWindowEventNP(Window *w, int event)
{
WindowEvent e;
e.event = event;
w->wndproc(w, &e);
}
@@ -691,7 +692,40 @@ static bool HandlePopupMenu()
return false;
}
static bool HandleWindowDragging()
bool HandleMouseOver()
{
Window *w;
WindowEvent e;
static Window *last_w = NULL;
w = FindWindowFromPt(_cursor.pos.x, _cursor.pos.y);
// We changed window, put a MOUSEOVER event to the last window
if (last_w && last_w != w) {
e.event = WE_MOUSEOVER;
e.mouseover.pt.x = -1;
e.mouseover.pt.y = -1;
if (last_w->wndproc)
last_w->wndproc(last_w, &e);
}
last_w = w;
if (w) {
// send an event in client coordinates.
e.event = WE_MOUSEOVER;
e.mouseover.pt.x = _cursor.pos.x - w->left;
e.mouseover.pt.y = _cursor.pos.y - w->top;
if (w->widget != NULL) {
e.mouseover.widget = GetWidgetFromPos(w, e.mouseover.pt.x, e.mouseover.pt.y);
}
w->wndproc(w, &e);
}
// Mouseover never stops execution
return true;
}
bool HandleWindowDragging()
{
Window *w;
// Get out immediately if no window is being dragged at all.
@@ -1083,6 +1117,9 @@ void MouseLoop()
if (!HandleViewportScroll())
return;
if (!HandleMouseOver())
return;
x = _cursor.pos.x;
y = _cursor.pos.y;
@@ -1188,6 +1225,7 @@ void UpdateWindows()
if (w->viewport != NULL)
UpdateViewportPosition(w);
}
DrawTextMessage();
// Redraw mouse cursor in case it was hidden
DrawMouseCursor();
}