summaryrefslogtreecommitdiff
AgeCommit message (Collapse)AuthorFilesLines
2012-04-10shell: handle surface destruction during move, resize and rotate grabsHEADmasterAnder Conselvan de Oliveira1-44/+107
When the surface being moved, resized or rotated was destroyed, the compositor would crash. Fix this by using a destroy listener on the referenced surface. To reduce code duplication, the surface reference and the destroy listener is added to a new struct shell_grab.
2012-04-10weston-launcher: Fix uninitialized variable warningKristian Høgsberg1-5/+4
2012-04-10weston-launcher: Fix aliasing warningsKristian Høgsberg2-13/+23
2012-04-10compositor: End keyboard grab when compositor loses keyboard focusKristian Høgsberg1-0/+4
2012-04-10tty: Put console in K_OFF modeKristian Høgsberg1-22/+13
This disables all kernel key bindings (VT switch keybindings, caps lock etc) and disables delivery of console input.
2012-04-10drm: Add vt switch keybindingsKristian Høgsberg3-0/+26
2012-04-10evdev: Get key state from kernel on vt enterKristian Høgsberg1-0/+44
We need this to correctly initialize compositor key state, modifier state and to send the right keys in the key enter event.
2012-04-10drm: Remove input devices before cancelling repaints in vt switch awayKristian Høgsberg1-5/+5
Removing the input devices will trigger events and activity that will cause a redraw. Do this before we put the compositor to sleep so we can cancel it properly and avoid immediately waking the compositor again.
2012-04-10xserver: Return EEXIST if unlinking lockfile failsKristian Høgsberg1-2/+6
Otherwise we'll keep trying to unlink it.
2012-04-10xserver: Don't leak lockfile fd on error pathKristian Høgsberg1-0/+2
2012-04-10compositor: Don't pass output to notify_keyboard_focusKristian Høgsberg4-11/+7
Doesn't make sense and was only used to distinguish between enter/leave.
2012-04-09evdev: Disable the udev monitor when another vt becomes activevt-switch-hotplugBenjamin Franzke3-8/+31
We dont want to receive hotplug events while being inactive. When getting back active we enumerate all devices and would end up with two sources for one device that may be hotplugged in the mean time.
2012-04-06Introduce weston-launchweston-launch-finalBenjamin Franzke13-19/+977
weston-launch starts weston and provides mechanism for weston to set/drop drm master, open a tty, and read input devices without being root. Execution is allowed for local-active sessions or users in the group weston-launch.
2012-04-04screenshot.c: Fix up a few stylistic issuesKristian Høgsberg1-20/+8
2012-04-04screenshooter: Properly handle multiple outputs.Scott Moreau6-23/+121
2012-04-03client: tablet-shell: fallback in the lack of lockscreen iconTiago Vignatti1-5/+11
lockscreen, homescreen and shell launchers are falling back okay already and only lockscreen icon was missing some way to keep the shell client running in the absence of images. This patch fix it. Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-04-03window: Check load_image result for NULLKristian Høgsberg1-0/+4
2012-04-03Fix `unused-result' warnings.Jonas Ådahl3-4/+10
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-04-03window: Use a persistent, big shm pool during resizeKristian Høgsberg1-8/+44
The biggest performance bottleneck while resizing is the continous setting up and tearing down of mmaps and faulting in pages. This commit introduces a per-window pool that we'll allocate buffers out of if it's available. Then we set initialize it to a big shm pool when we start resizing and free it when resizing is done.
2012-04-03window: Only initialize egl if we have cairo eglKristian Høgsberg1-0/+6
2012-04-03clients: Use new shm interfaceKristian Høgsberg4-33/+54
2012-04-03cairo-util: Use nearest filtering for rendering frameKristian Høgsberg1-0/+2
We don't need bilinear filtering here, the corners aren't scaled and the scaled edges are just stretched along one axis.
2012-04-02shell: Break up a few long linesKristian Høgsberg1-2/+4
2012-04-02shell: set black surface alpha properly in switcher_next()Alex Wu1-0/+9
Make the black surfaces semitransparent when switching surface, and if associated fullscreen surface is chosen, make black surface opaque.
2012-04-02shell: Add fullscreen path into activate()Alex Wu2-6/+38
Use shell_stack_fullscreen() to raise fullscreen surface in activate(), and before activate() a regular surface, move all the fullscreen surfaces from fullscreen_layer to toplevel_layer. Also add a void *private into struct wesont_surface since we already have a configure() vfunc. That helps to get the associated fullscreen surface of black surface.
2012-03-30Add signedness warning flag and fix falloutKristian Høgsberg15-34/+39
2012-03-30Fix warnings resulting from wayland signedness fixesKristian Høgsberg2-10/+10
2012-03-29Remove weston_shell map and configure function pointersKristian Høgsberg3-32/+11
2012-03-29shell: Remove obsolete workaroundKristian Høgsberg1-4/+0
Cursor surface now are properly initialized.
2012-03-29compositor: Support alpha for solid color surfacesKristian Høgsberg1-1/+2
2012-03-28tty: Improve error handling in tty_create()Jonas Ådahl1-3/+25
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-03-28Properly dispose event sources and event loopsJonas Ådahl4-7/+34
Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-03-28compositor: Stop using EGL_KHR_surfaceless_gles2Kristian Høgsberg3-25/+52
The remaining use case was making our context current before we had any output surfaces. We can do that now using a dummy surface, so let's stop relying on surfaceless.
2012-03-28compostor-drm: Use gbm surfaceKristian Høgsberg1-151/+128
Instead of using the hacks of gbm_bos, EGLImage, FBOs and surfaceless we switch to using the new gbm surface API. This gives us an EGL native window type for gbm and lets us use a real EGL surface.
2012-03-28tablet-shell: come back to lifeTiago Vignatti2-79/+176
A couple of fixes were made: Weston tablet-shell needed to use weston_layer, so the compositor could rebuild the surface list correctly when repainting; homescreen and locking are using the widget + window abstration of toytoolkit; and widget_set_redraw_handler are being set for widgets redraw. Also, it was given some basic meaning for lockscreen_button_handler, which was completely disabled before. As a clean up, I updated the global listener mechanism on tablet-shell client, using the regular way of registering a handler instead wl_display_roundtrip -> wl_display_get_global. Switcher still without code to proper work and the same for tablet-shell clients, which are not launched. krh: Edited to not scale down homescreen icons, use new load_cairo_surface() for image loading. Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-03-27compositor: Use GL_EXT_unpack_subimage for texture updatesKristian Høgsberg1-6/+14
2012-03-27compositor: Rename weston_buffer_attach to weston_surface_attachKristian Høgsberg1-3/+3
This was always an operation on the surface, not the buffer.
2012-03-27dnd: Damage surface after attaching new bufferKristian Høgsberg1-0/+7
2012-03-27clients: Fix a couple of warningsKristian Høgsberg2-13/+0
2012-03-27evdev: reuse code for device removalTiago Vignatti1-25/+21
Just like device_added, now the routines to close the compositor and vt switch leave are using the same code to remove a device. This patch also closes properly a mtdev device, bug spotted by Christopher Michael. Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-03-27compositor: move force_configure field to shell_surfaceAnder Conselvan de Oliveira3-6/+7
2012-03-27compositor: make surface_configure() a vfuncAnder Conselvan de Oliveira3-28/+68
This allows us to move the logic that calls shell->map() or shell->configure() into shell while allowing it to be overriden for surfaces that should not be handle by the shell, such as drag icons. This patch adds a pointer function called configure to weston_surface, moves the currsent surface_configure() code into shell and implements a separate configure() for drag surfaces.
2012-03-27compositor: refactor surface_attach()Ander Conselvan de Oliveira1-50/+53
surface_attach() does two things: sets up a new buffer as the contents of the given surface and then calls into shell so it can setup the position of the surface and map it if necessary. However we do not want the shell to meddle with some internal surfaces such as drag surfaces. The intention of this refactoring is to make room for making the part that calls into shell a virtual function that the compositor can override for these internal surfaces. This changes weston_buffer_attach() so it handle all the logic of tying a buffer to a surface, including unmapping it when the buffer is NULL. The shell map() vs. configure() logic is then split into a another function: surface_configure(). In a later commit, this function will be turned into a function pointer in struct weston_surface.
2012-03-27compositor: use new drag icon listener for setting up drag surfacesAnder Conselvan de Oliveira3-2/+18
That way we can get rid of the call to weston_compositor_update_drag_surfaces() on shell->map().
2012-03-27compositor: make es->pitch consistent between shm and drm surfacesAnder Conselvan de Oliveira1-1/+1
For shm buffers, es->pitch is set using the stride of the buffer. If the shell happened to set the surface width to something different than the buffer width, the contents of the surface would be cropped on the width during redraw. However, for non-shm surfaces, es->pitch was set to the surface width. That caused the contents of the buffer to be scaled on the width when the buffer was wider than the surface. This makes the behavior on both cases the same: crop on the width and scale on the height. (which is weird but consistent)
2012-03-27compositor: add weston_surface_to_global_float helperAnder Conselvan de Oliveira2-3/+13
2012-03-27compositor: add a weston_surface_is_mapped() helperAnder Conselvan de Oliveira3-9/+21
2012-03-27compositor: Use GL_BGRA_EXT for glReadPixels in screenshooterKristian Høgsberg2-1/+6
This needs GL_EXT_read_format_bgra.
2012-03-26Simplify shm buffer handlingKristian Høgsberg6-105/+24
There was a lot of code here to do a lot of work we didn't need to do. If we damage a surface with a shm buffer attached, all we need to do is to re-upload the damaged region to the texture. As for drm buffers, we don't assume anything changes on attach and only update the regions the client tells us to update in the damage request.
2012-03-26window.c: Do resize work from the repaint idle callbackKristian Høgsberg1-15/+9
This way we always make sure we handle any resizing before we start drawing.