Commits on Source (6)
-
Currently, and for legacy reasons, weston_seat_set_keyboard_focus() contains logic related to surface activation. Since this function is always called from weston_view_activate_input(), move that code there where it seems more appropriate. This will help us in subsequent commits by avoiding to have to change the signature of weston_seat_set_keyboard_focus(), which would make that function even more awkward than it currently is. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
d11732c0 -
Since we want to pass the view to the surface activation listener inside the constraints code, and the surface is reachable from the view anyway. The flags field will let us pass the reason for activation to the constraints code, which will then handle especially the fullscreen case. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
ed012ee5 -
This will be used to let know the constraints code that the reason for activation is that the client has requested to set the surface to fullscreen. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
4aafd872 -
When the position or size of a fullscreen surface changes (e.g., due to change in the output), the surface commit logic in desktop_surface_committed() resets the fullscreen by first calling unset_fullscreen() and later on calling shell_configure_fullscreen(). One part of this reset is the recreation of the black view curtain (destroyed in unset_fullscreen() and created again in shell_configure_fullscreen()). In the upcoming commit we will replace the call to shell_configure_fullscreen() with a call to activate() (since we want to activate this shell surface, and activate() already has a call to shell_configure_fullscreen() in it). The code in activate() by default lowers the fullscreen layer of the shell surface through lower_fullscreen_layer(), which is called before shell_configure_fullscreen(). This lowering function assumes that the fullscreen shell surface has a valid black view curtain, which as said before was removed in the call to unset_fullscreen(). Add the check to guard against this case. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
e93da8fe -
When a toplevel xdg surface is changing from non-fullscreen to fullscreen upon a client request, activate its corresponding shell surface. This will let us use the activation mechanism to enforce the enabling of pointer confinement. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
78287126 -
The addition in a former commit of the flags field in the activation data will let us pass the reason for activation to the constraint logic. We use that reason here to unconditionally enable constraints in the recently 'fullscreened' surface. Signed-off-by: Sergio Gómez <sergio.g.delreal@gmail.com>
a7f63c12