- May 01, 2014
-
-
Jasper St. Pierre authored
This is substantially confusing to users, namely me. krh: Edited to just set grip size to zero.
-
Jasper St. Pierre authored
If !(x < margin), then clearly margin <= x. No need to test for it again.
-
Jasper St. Pierre authored
send_configure was originally modelled after wl_shell_surface::send_configure, which takes these arguments. However, the X WM and xdg_surface::configure variants don't use these arguments. We already store the resize edges for a surface while it's being resized, so just use the saved state in the wl_shell_surface variant.
-
Jasper St. Pierre authored
It's called on commit, not on attach. Additionally, correct the interface name to be wl_surface, not surface.
-
- Apr 30, 2014
-
-
Andrew Wedgbury authored
There is no need to unset WAYLAND_DISPLAY and WAYLAND_SOCKET when screen-share launches the fullscreen shell server. This was done originally in case the launched server decided to use the wayland backend based on the presence of these. However, we pass a command line argument telling it to use the RDP backend, which overrides the automatic backend selection based on the environment. Keeping these environment variables allows the launched fullscreen shell server to know the original server's display name, which it may need in order to show a configuration UI. Signed-off-by:
Andrew Wedgbury <andrew.wedgbury@realvnc.com> Reviewed-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Kristian Høgsberg authored
Make sure we're looking at the right location. The frame could have received a motion event from a pointer from a different wl_seat, but under X it looks like our core pointer moved. Move the frame pointer to the button press location before deciding what to do.
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
If we're going to move or resize an xwayland surface, we used to just pick the first seat in the list for doing the move/resize. Ideally we can map from the XInput device doing the click to the corresponding weston_seat, but that requires using xcb xinput, which isn't well supported. Instead, lets use a simple heuristic that just picks the pointer that most recently delivered a button event to the window in question. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73807
-
Kristian Høgsberg authored
This moves the check for shsurf->grabbed into surface_move() and surface_resize(), which are shared with the xwayland code. This prevents trying to resize or move an xwayland window with multiple pointers.
-
Kristian Høgsberg authored
9c376b54 fixed the crash when a client goes away during a resize grab. The shsurf->resource is set to NULL in that case and we were trying to send out events to a NULL resource. However, xwayland shell surfaces are created by the xwayland module and don't have a resource. We use a different function pointer for sending the configure events that handle the events inside xwayland instead of sending protocol events. To fix all this, we just move the check for a NULL resource into the functions that we use for sending configure events for wl_shell and xdg_shell.
-
Xiong Zhang authored
The geometry for visible views will keep unchanged, weston_view_set_position() doesn't mark these views as dirty. So there is no chance for them to reassign output, then these views will disappear. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=72946 Signed-off-by:
Xiong Zhang <xiong.y.zhang@intel.com>
-
Kristian Høgsberg authored
We need a valid kb_mode to restore to in case weston-launch dies and weston has to clean up the tty. We don't get a chance to read out the kb mode before weston-launch changes it, but it's safe to assume that it's always K_UNICODE. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77455
-
Ander Conselvan de Oliveira authored
When commit 07926d90 factored out the code that chooses in which layer a surface is added to, it changed the behavior for surfaces with no type. Instead of not adding it to any layer, the surface is added to the current workspace. This patch restores the old behavior. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77527
-
- Apr 29, 2014
-
-
Faith Ekstrand authored
Previously, desktop-shell would only create its internal shell_seat object for each seat available when the desktop-shell module is loaded. This is a problem any time seats are created dynamically. In particular, the Wayland and RDP backends create seats on an as-needed basis and they weren't getting picked up proprely by desktop-shell. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77649
-
Kristian Høgsberg authored
-
Emilio Pozuelo Monfort authored
lower_fullscreen_surface() was removing fullscreen surfaces from the fullscreen layer and inserting them in the normal workspace layer. However, those fullscreen surfaces were never put back in the fullscreen layer, causing bugs such as unrelated surfaces being drawn between a fullscreen surface and its black view. Change the lower_fullscreen_surface() logic so that it lowers fullscreen surfaces to the workspace layer *and* hides the black views. Make this reversible by re-configuring the lowered fullscreen surface: when it is re-configured, the black view will be shown again and the surface will be restacked in the fullscreen layer. https://bugs.freedesktop.org/show_bug.cgi?id=73575 https://bugs.freedesktop.org/show_bug.cgi?id=74221 https://bugs.freedesktop.org/show_bug.cgi?id=74222
-
Kristian Høgsberg authored
We add a primitive constraining function to at least prevent users from moving the window up under the panel. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=73421
-
Kristian Høgsberg authored
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=74219
-
Kristian Høgsberg authored
Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=77345
-
Kristian Høgsberg authored
This rejects resizing a window that's currently being moved. This can be done using a touch screen and a pointer or just two seats.
-
Kristian Høgsberg authored
We move the check for shsurf->grabbed from surface_move() and surface_touch_move() up top common_surface_move()
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
Ideally, we'll update the key event handling to deliver events to widgets, but in the meantime, just blocking key event delivery while a grab is active goes a long way.
-
Kristian Høgsberg authored
-
Ander Conselvan de Oliveira authored
If a client exists during a resize grab, the resource for the shell surface being resized is destroyed. The shell surface is not destroyed immediately, however, because of the window close animation. In that case, the compositor would crash trying to send configure events to the surface being resized, since it would pass a NULL pointer to wl_resource_post_event(). The code for the resize grab was already able to handle the surface going away, so expand it to also handle the resource going away and fix the crash. https://bugs.freedesktop.org/show_bug.cgi?id=77344
-
Ander Conselvan de Oliveira authored
In order to do the window close animation, a reference for a destroyed surface is kept. However, the reference count was also increased for unmapped surfaces, in which case the animation wouldn't run. Since the reference count was decremented in the animation done function, it would never be decreased for unmapped surfaces, causing them to not be released. The close animation also changed how shell surfaces are released. The destroy function for its resource was changed to not deallocate the surface, and instead keep it around until the animation finishes and the weston surface is destroyed. The destruction should happen in the destroy listener for the weston surface, but it wouldn't destroy the shell surface in the case the resource was still valid, assuming that it would be freed in the resource destroy function.
-
Bryce W. Harrington authored
This ensures the allocation results are checked for NULL (out of memory), and terminates the program in such a case. Signed-off-by:
Bryce Harrington <b.harrington@samsung.com>
-
- Apr 25, 2014
-
-
Neil Roberts authored
In order to apply the zoom transformation to the output matrix, Weston was doing the following: • Create a temporary matrix to hold the translation • Invert the translation matrix using weston_matrix_invert into another temporary matrix • Scale that matrix by the scale factor • Multiply the current matrix with the temporary matrix Using weston_matrix_invert to invert a translation matrix is over the top. Instead we can just negate the values we pass to weston_matrix_translate. Matrix multiplication is associative so creating a temporary matrix to hold the scale and translation transform should be equivalent to just applying them directly to the output matrix.
-
Neil Roberts authored
It looks like the handler for frame events from the wl_touch interface for widgets may have been erroneously copied from the cancel handler so that it removes all handlers as they are processed. I don't think this makes much sense for the frame event. This was stopping the panel icons from being pushable with touch events when using libinput since commit 1679f232. All that commit does it make it start sending the frame events.
-
Ander Conselvan de Oliveira authored
Make sure that we don't map a device to an invalid output pointer and intead remap devices when an output is created. v2: fix the error with libinput too.
-
Ander Conselvan de Oliveira authored
If the output a touchscreen is paired to is unplugged, events coming from it should be ignored. Commit 17bccaed introduced logic for that in evdev_flush_pending_damage(). However, the break statements it introduced would cause the assertion after the switch statement to fail. That function has the odd behavior that goto's are used to skip the assertion after the switch statement and jump to the hunk of code that marks the event as processed. Only in the case where the event type has an invalid value the assertion should trigger. So this patch fixes the problem by moving the assertion into the default case of the switch and replacing the goto statements with break ones. https://bugs.freedesktop.org/show_bug.cgi?id=73950
-
Ander Conselvan de Oliveira authored
Commit 17bccaed intended to make the events coming from a touchscreen paired with an unplugged output to be discarded, while an unpaired one would just choose a different output. However, the logic was inverted causing the opposite to happen. Later in commit 161c6c56, the default behavior was changed to map an output to a default output if the one specified via udev is not present. This change is reverted by this patch. v2: undo the change from commit 161c6c56. v3: deal with libinput too.
-
Ander Conselvan de Oliveira authored
That would be the case of a touch screen mapped to an output that was unplugged.
-
Faith Ekstrand authored
This fixes an issue in the pixman renderer where it would not render surfaces correctly if both wl_viewport and wl_surface.set_buffer_transform were used. Reviewed-by:
Pekka Paalanen <ppaalanen@gmail.com> Signed-off-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Faith Ekstrand authored
Previously, because of the wrong width/height, weston_surface_to_buffer_* would return the wrong values when wl_viewport was used in combination with wl_surface.set_buffer_transform. Reviewed-by:
Pekka Paalanen <ppaalanen@gmail.com> Signed-off-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Bryce W. Harrington authored
Signed-off-by:
Bryce Harrington <b.harrington@samsung.com>
-
Bryce W. Harrington authored
Most zalloc calls in weston are checked, this fixes a handful that were being ignored. As found by `grep -EIsr "[^x]zalloc\(" . -A1` Signed-off-by:
Bryce Harrington <b.harrington@samsung.com>
-
- Apr 22, 2014
-
-
Kristian Høgsberg authored
Previously we would only use the set background color if the background-image value was explicitly set to empty or a non-existing image. With this change, we only load the default background image if there's no configure background image or background color. In case of both an image and a color, the image takes precedence as before.
-