1
0
Fork 0
mutter-performance-source/src/core
Owen W. Taylor 2a823ef3e4 Fix crash when struts change during grab operation
Since meta_workspace_invalidate_work_area() frees the edges
workspace->screen_edges and workspace->monitor_edges, we must clean up
our cached edge resistance data when the invalidate_work_area() is
called on the active workspace, or when the workspace changes.

Make the computation of the edge resistance data lazy so that it
will be recomputed the next time we try to access it.
meta_display_compute_resistance_and_snapping_edges() is made
private to edge-resistance.c

Invaliding the data when active workspace changes also will improve
correctness for edge resistance when the current workspace changes
during a grab operation. (Even with this fix we still don't try to
handle window positions changing during a grab operation; that can't
cause a crash since, unlike screen and monitor edges, the window edges
are freshly allocated, it will just cause slight oddness in that
corner case.)

Root cause tracked down due to much effort by Jon Nettleton.
https://bugzilla.gnome.org/show_bug.cgi?id=608800
2010-02-09 17:00:20 -05:00
..
async-getprop.c gnome-doc-tools version doesn't need to be so high. disable the entire 2008-12-01 22:54:57 +00:00
async-getprop.h gnome-doc-tools version doesn't need to be so high. disable the entire 2008-12-01 22:54:57 +00:00
bell.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
bell.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
boxes.c Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
constraints.c Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
constraints.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
core.c meta_display_list_windows: Exclude override-redirect 2009-06-29 22:51:32 -04:00
delete.c Fix handling of SIGCHLD 2009-11-20 11:15:58 -05:00
display-private.h Fix crash when struts change during grab operation 2010-02-09 17:00:20 -05:00
display.c Fix crash when struts change during grab operation 2010-02-09 17:00:20 -05:00
edge-resistance.c Fix crash when struts change during grab operation 2010-02-09 17:00:20 -05:00
edge-resistance.h src/include/frame.h src/include/display.h src/include/xprops.h 2008-05-19 00:00:09 +00:00
errors.c Remove meta_errors_register_foreign_display() 2009-08-13 07:38:08 -04:00
eventqueue.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
eventqueue.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
frame-private.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
frame.c There can be only one compositor engine 2009-06-30 09:34:03 -04:00
group-private.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
group-props.c Added curly brackets in two places to keep -pedantic happy. 2008-05-04 17:57:11 +00:00
group-props.h Exposed MetaGroup API. 2009-01-15 15:37:48 +00:00
group.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
iconcache.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
iconcache.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
keybindings-private.h Enforce a policy of single-handling of key events 2009-08-26 12:26:58 -04:00
keybindings.c Remove MetaAltTabHandler 2009-10-02 15:47:49 -04:00
main.c Fix handling of SIGCHLD 2009-11-20 11:15:58 -05:00
mutter-Xatomtype.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
place.c Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
place.h Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
prefs.c Remove wireframe mode and old effects framework 2009-06-30 09:35:12 -04:00
screen-private.h Remove XOR gc only used in removed reduced-resources mode 2009-11-24 15:40:35 -05:00
screen.c Remove XOR gc only used in removed reduced-resources mode 2009-11-24 15:40:35 -05:00
session.c Fix handling of SIGCHLD 2009-11-20 11:15:58 -05:00
session.h Adding doxygen headers to some files. 2008-08-18 10:25:17 +00:00
stack-tracker.c Use "later functions" to fix priority problems with Clutter redraw 2009-10-02 15:50:16 -04:00
stack-tracker.h Move compositor-stack handling to MetaStackTracker 2009-06-29 23:05:11 -04:00
stack.c Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
stack.h Add a MetaScreen:restacked signal and expose MetaWindow.layer 2009-03-12 17:07:27 -04:00
testasyncgetprop.c Comprehensively rename to Mutter 2009-06-16 14:17:10 -04:00
testboxes.c Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
util.c Fix handling of SIGCHLD 2009-11-20 11:15:58 -05:00
window-private.h [MetaWindow] added urgent property 2009-11-20 08:51:19 +00:00
window-props.c [MetaDisplay] added "window-marked-urgent" signal 2009-11-20 08:57:36 +00:00
window-props.h Don't read most properties for override-redirect windows 2009-06-29 22:32:19 -04:00
window.c [MetaDisplay] added "window-marked-urgent" signal 2009-11-20 08:57:36 +00:00
workspace-private.h Refer to monitors as "monitors" rather than "xineramas" 2009-08-31 14:39:48 -04:00
workspace.c Fix crash when struts change during grab operation 2010-02-09 17:00:20 -05:00
xprops.c Work around Xlib 64-bit "specialness" 2010-01-25 11:07:32 -05:00