• Daniel Drake's avatar
    Reduce server grabs during window creation · 577624ad
    Daniel Drake authored
    Remove some obvious server grabs from the window creation codepath,
    also ones that are taken at startup.
    
    During startup, there is no need to grab: we install the event handlers
    before querying for the already-existing windows, so there is no danger
    that we will 'lose' some window. We might try to create a window twice
    (if it comes back in the original query and then we get an event for it)
    but the code is already protected against such conditions.
    
    When windows are created later, we also do not need grabs, we just need
    appropriate error checking as the window may be destroyed at any time
    (or it may have already been destroyed).
    
    The stack tracker is unaffected here - as it listens to CreateNotify and
    DestroyNotify events and responds directly, the internal stack
    representation will always be consistent even if the window goes away while
    we are processing MapRequest or similar.
    
    Now that there are no grabs we don't have to worry about explicitly calling
    display_notify_window after grabs have been dropped. Fold that into
    meta_window_new_shared().
    
    https://bugzilla.gnome.org/show_bug.cgi?id=721345
    577624ad
Name
Last commit
Last update
doc Loading commit data...
po Loading commit data...
protocol Loading commit data...
src Loading commit data...
test Loading commit data...
tools Loading commit data...
.cvsignore Loading commit data...
.gitignore Loading commit data...
AUTHORS Loading commit data...
COMPLIANCE Loading commit data...
COPYING Loading commit data...
ChangeLog Loading commit data...
Doxyfile Loading commit data...
HACKING Loading commit data...
MAINTAINERS Loading commit data...
METACITY_MAINTAINERS Loading commit data...
Makefile.am Loading commit data...
NEWS Loading commit data...
README Loading commit data...
autogen.sh Loading commit data...
configure.ac Loading commit data...
mutter.doap Loading commit data...
rationales.txt Loading commit data...
stamp.h.in Loading commit data...