- Jan 01, 2014
-
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
Popup windows are relative to a plain wl_surface, so that custom surfaces can have popups. This used for the desktop-shell panel for example. Also, popups should be immediately on top of their parent surface, as they typically represent an extension of an UI element in the parent surface such as a combo box or menu. This reverts commit da704d97. Conflicts: desktop-shell/shell.c https://bugs.freedesktop.org/show_bug.cgi?id=72547
-
- Dec 31, 2013
-
-
Kristian Høgsberg authored
Custom windows don't have a wl_shell_surface and can't do anything in response to these button (except crash). This only affects the unlock dialog. https://bugs.freedesktop.org/show_bug.cgi?id=72542
-
Kristian Høgsberg authored
If we don't mark the state as changed, we don't copy over next_state to state and we fail to treat the surface as a transient. In particular, we give it a random intial position instead of mapping it at the given parent relative position. https://bugs.freedesktop.org/show_bug.cgi?id=72532
-
- Dec 22, 2013
-
-
Hardening authored
This patch fixes seat releasing during a RDP disconnection. It does not fully fix https://bugs.freedesktop.org/show_bug.cgi?id=66830, but makes things better.
-
Ander Conselvan de Oliveira authored
Set the internal pointer for the client to NULL. This fixes a segmentation fault at shutdown, where the shell would hang up before and cause libwayland to call wl_client_destroy(). When the shell was destroyed later, another call to wl_client_destroy() would cause the crash. https://bugs.freedesktop.org/show_bug.cgi?id=72550
-
Ander Conselvan de Oliveira authored
Currently we destroy the renderer before the outputs are destroyed, but that sometimes leads to an error since a reference to the renderer is necessary in order to destroy a gl_renderer_output. Since destroying the renderer is common among all backends, just move that call into weston_compositor_shutdown() immediately after the outputs being destroyed.
-
Lubomir Rintel authored
While the pixman image might be attached, the underlying buffer might be already gone under certain circumstances. This is easily reproduced by attempting to resize gnome-terminal on a fbdev backend. $ WAYLAND_DEBUG=1 strace -emunmap weston --backend=fbdev-backend.so ... [1524826.942] wl_shm@7.create_pool(new id wl_shm_pool@23, fd 40, 1563540) [1524827.315] wl_shm_pool@23.create_buffer(new id wl_buffer@24, 0, 759, 515, 3036, 0) ... [1524829.488] wl_surface@14.attach(wl_buffer@24, 0, 0) [1524829.766] wl_surface@14.set_buffer_scale(1) [1524829.904] wl_surface@14.damage(0, 0, 759, 515) [1524830.248] wl_surface@14.frame(new id wl_callback@25) [1524830.450] wl_surface@14.commit() ... [1524846.706] wl_shm@7.create_pool(new id wl_shm_pool@26, fd 40, 1545000) [1524847.215] wl_shm_pool@26.create_buffer(new id wl_buffer@27, 0, 750, 515, 3000, 0) [1524847.735] wl_buffer@24.destroy() [1524847.953] -> wl_display@1.delete_id(24) [1524848.144] wl_shm_pool@23.destroy() munmap(0xb5b2e000, 1563540) = 0 [1524849.021] -> wl_display@1.delete_id(23) [1524849.425] wl_surface@14.attach(wl_buffer@27, 0, 0) [1524849.730] wl_surface@14.set_buffer_scale(1) [1524849.821] wl_surface@14.damage(0, 0, 750, 515) <No commit yet, so drawing is attempted from older buffer that used to be attached to the surface, which happens to come from a destroyed pool, resulting it an invalid read from address 0xb5b2e000> Signed-off-by:
Lubomir Rintel <lkundrak@v3.sk>
-
- Dec 20, 2013
-
-
Ander Conselvan de Oliveira authored
Remove those listeners when the output is destroyed, otherwise they'll point to invalid data that may lead to corruption when assigning a new output for the view. -- This is possibly related to bug 72845. I didn't have enough equipment to try and reproduce it. https://bugs.freedesktop.org/show_bug.cgi?id=72845
-
Ander Conselvan de Oliveira authored
That way log messages referencing the output are more informative.
-
Ander Conselvan de Oliveira authored
Record from the output of the surface that has keyboard focus for the seat used to activate the recorder key binding. If there is no focused surface, record from the first one. Also, use the weston_transformed_region() to transform the damage region of the output into the coordinates expected by read_pixels(). https://bugs.freedesktop.org/show_bug.cgi?id=71401
-
- Dec 17, 2013
-
-
Kristian Høgsberg authored
Make sure the links are initialized so we can safely remove the listeners in weston_view_unmap(). https://bugs.freedesktop.org/show_bug.cgi?id=72808
-
Ander Conselvan de Oliveira authored
If the compositor hasn't been rendering for a while when the recording stops, the time difference between the last rendered frame and that moment won't be in the encoded video. Fix that by forcing one extra frame to be recorded when the user presses the recorder key binding. https://bugs.freedesktop.org/show_bug.cgi?id=71142
-
Kristian Høgsberg authored
Make it possible to compile this example with EGL implementations without this extension.
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
-
Jonny Lamb authored
This client tests the wl_scaler and wl_surface_scaler protocol extensions by cropping and then scaling a surface to ensure it is rendered correctly. More details in comments in the code.
-
Jonny Lamb authored
The pixman renderer doesn't use the weston_surface_to_buffer* functions to alter coordinates depending on buffer transformation, buffer scaling, and surface scaler (wl_surface_scaler). pixman_transform_scale() is used instead to perform said transformations without having to modify each coordinate.
-
Jonny Lamb authored
Implements wl_surface_scaler.set by setting desired src_{x,y,width,height} and dst_{width,height} values in the weston_buffer_viewport struct, then altering coordinates in weston_surface_to_buffer* functions if there is a scaler set for said surface.
-
Jonny Lamb authored
This registers the wl_scaler global object and lets clients create wl_surface_scaler objects for surfaces. wl_surface_scaler.set is not implemented so this doesn't really do anything useful yet.
-
Pekka Paalanen authored
Add cropping and scaling to wl_surface. Add a global factory interface wl_scaler, which creates wl_scaler_surface objects tied to a given wl_surface. The wl_scaler_surface object can be used to set a cropping and scaling transformation to change how a wl_buffer maps to wl_surface contents. Changes in v2: Take into account buffer_transform and buffer_scale, and try to explain more clearly how the coordinate transformations work and what their order is. Add, that crop and scale state is double-buffered. Explain missing dst_x, dst_y. Clarify that undefined content still is some content, but NULL buffer implies no content nor size. Changes in v3: Disallow zero values for dst_width and dst_height. Open issues: Should this be a separate interface like here, or just a wl_surface request? If we keep this as a separate interface, rename wl_surface_scaler to wl_viewport.
-
Jason Ekstrand authored
Surfaces that are created by clients get their size automatically updated by the attach/commit. Surfaces created directly by shells (such as black surfaces) sometimes need to be manually resized. This function allows you to do that while being somewhat less messy than messing with the internals of weston_surface manually. Signed-off-by:
Jason Ekstrand <jason@jlekstrand.net>
-
Ander Conselvan de Oliveira authored
When a view is moved to another output because its current output was unplugged, remove the fullscreen and maximized state.
-
Zhang, Xiong Y authored
If the saved position for a fullscreen or maximized output view is in an output that has been unplugged, the coordinates don't make sense anymore. In that case, invalidate them and use the initial position algorithm when changing them back to the basic state. Signed-off-by:
Zhang, Xiong Y <xiong.y.zhang@intel.com> Signed-off-by:
Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
-
Ander Conselvan de Oliveira authored
Previously, if a pointer was inside an output that was unplugged, it could potentialy end up outside any valid output forever. With this patch, the pointer is moved to the "closest" output to the pointer.
-
Ander Conselvan de Oliveira authored
Set a flag when an output is being destroyed and use that to avoid repainting. This allows functions that schedule an output repaint to be called when the output is being destroyed without causing the compositor to crash.
-
Zhang, Xiong Y authored
Use the output destroy signal to move the views in the event the output was unplugged. Signed-off-by:
Zhang, Xiong Y <xiong.y.zhang@intel.com> Signed-off-by:
Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
-
Zhang, Xiong Y authored
Previously, when an output was moved due to another output being unplugged, the views on the first output would remain in the same position. This patch adds an output_move signal that the views listen too in order to repostion themselves in the event of an unplug. Signed-off-by:
Zhang, Xiong Y <xiong.y.zhang@intel.com> Signed-off-by:
Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
-
Ander Conselvan de Oliveira authored
The call to weston_output_move() when creating the output is unnecessary. That is already called by wesotn_output_init().
-
Zhang, Xiong Y authored
Instead of having the backends move the remaining outputs when one is destroyed, let the core compositor deal with that. Signed-off-by:
Zhang, Xiong Y <xiong.y.zhang@intel.com> Signed-off-by:
Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
-
Ander Conselvan de Oliveira authored
When destroying ouputs, they would sometimes be removed before the call to weston_output_destory() and sometimes after, depending on the backend. Now the output is remove withing that function so the behavior is standard across all backends.
-
Ander Conselvan de Oliveira authored
Instead of terminating the compositor, destroy the output whose close button was clicked and move the other outputs, as is done in the drm backend.
-
Kristian Høgsberg authored
We now no longer add joysticks at all. They show up as absolute motion devices without has_button, so we don't add them as a pointer. We may add a keyboard for the keyboard-style keys, but that's fine. With the previous commit, we no longer generate spurious absolute pointer motion for the abs axes. https://bugs.freedesktop.org/show_bug.cgi?id=71687
-
- Dec 16, 2013
-
-
Kristian Høgsberg authored
Some joysticks have certain buttons that acts keyboard keys. As such, we'll reconize them as keyboards but not pointers. In that case, don't send pointer motion events when we get absolute joystick events.
-
Kristian Høgsberg authored
This rule triggers for devices with an ABS_X/Y evaluators and no keyboard or multitouch events. There is no way we would ever add such a device as a pointer, keyboard or touch device anyway. A pointer device requires has_button (in which case the !has_key condtion would fail); a keyboard device would also mean !has_key is false and a touch screen device implies that !device->is_mt is false.
-
Kristian Høgsberg authored
We now keep all the configuration intermediate results inside evdev_configure_device() and the result is device->seat_caps.
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
-
Kristian Høgsberg authored
We split up has_abs into plain ABS_X/Y and MT events, but this shouldn't introduce any logic changes.
-