Open Bug 361354 Opened 18 years ago Updated 2 years ago

Consider not using get_inner_gdk_window to determine drag target widget

Categories

(Core :: Widget: Gtk, enhancement)

x86
Linux
enhancement

Tracking

()

People

(Reporter: bzbarsky, Assigned: karlt)

References

(Blocks 1 open bug)

Details

(Keywords: perf)

Right now, the code in nsWindow::OnDragMotionEvent (gtk2 version) does:

2317     returnWindow = get_inner_gdk_window(thisWindow, aX, aY,
2318                                         &retx, &rety);
2319     nsWindow *innerMostWidget = NULL;
2320     innerMostWidget = get_window_for_gdk_window(returnWindow);
2321 
2322     if (!innerMostWidget)
2323         innerMostWidget = this;

The call to get_window_for_gdk_window takes up quite some profile time and more importantly hits the X server over and over getting widget geometries.

Wouldn't it make more sense to walk our child tree and thus determine which widget the point falls in?
Depends on: widget-removal
Severity: normal → major
Keywords: perf
Blocks: 331241
Assignee: nobody → karlt
QA Whiteboard: qa-not-actionable
Severity: major → --
Type: defect → enhancement
You need to log in before you can comment on or make changes to this bug.