1f20e82a96
Ungrabbed pointer motion events over a client window area don't even reach mutter in X compositor mode, but as a wayland compositor we process those events which ends up in a call stack like: - meta_window_handle_ungrabbed_event - meta_ui_frame_handle_event - handle_motion_notify_event - get_control - meta_ui_frame_calc_geometry Computing frame geometry is a relatively CPU expensive operation and doing it on every motion event over a client window is pointless work since we aren't going to change the cursor or prelight any frame widget. This commit special cases the determination of META_FRAME_CONTROL_CLIENT_AREA using a much faster method. When continuously moving the pointer over an X (client) window, it results in a ~40% decrease in mutter cpu usage. https://bugzilla.gnome.org/show_bug.cgi?id=779436 |
||
---|---|---|
.. | ||
frames.c | ||
frames.h | ||
theme-private.h | ||
theme.c | ||
ui.c | ||
ui.h |