Rui Matos 1f20e82a96 ui/frames: Simplify client area control computation
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
2017-03-02 19:40:27 +01:00
2017-02-16 02:44:16 +01:00
2015-07-06 00:52:18 -07:00
2017-03-02 13:16:55 +01:00
2017-02-16 16:01:42 +01:00
2017-03-01 15:48:06 +01:00
2016-04-27 20:37:47 +02:00
2017-03-01 15:48:06 +01:00
Description
91 MiB
Languages
C 98.9%
Meson 0.7%
Python 0.3%