summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* configure.ac: Bump version to 1.0.21.0.2Kristian Høgsberg2012-11-301-1/+1
|
* compositor-drm: Allow scanning out of opaque ARGB surfacesAnder Conselvan de Oliveira2012-11-301-4/+29
|
* Fix build warnings from image_loaderPekka Paalanen2012-11-306-2/+13
| | | | | | | | | | | | | | | | | | | | | | | Fix the following build warnings, and the build failures due to the warning fixes: CC libshared_cairo_la-image-loader.lo image-loader.c:369:1: warning: no previous prototype for 'load_image' CC x11_backend_la-compositor-x11.lo compositor-x11.c: In function 'x11_output_set_icon': compositor-x11.c:396:2: warning: implicit declaration of function 'load_image' compositor-x11.c:396:8: warning: assignment makes pointer from integer without a cast CC wayland_backend_la-compositor-wayland.lo compositor-wayland.c: In function 'create_border': compositor-wayland.c:97:2: warning: implicit declaration of function 'load_image' compositor-wayland.c:97:8: warning: assignment makes pointer from integer without a cast Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com> Conflicts: src/compositor-wayland.c
* Fix a crash when opening two terminal windows and closing the first one.Dima Ryazanov2012-11-303-2/+13
| | | | | | | | | To reproduce, launch the terminal, open a second window using Ctrl-Shift-N, go back to the first window, and press Ctrl-D. The terminal's master FD gets events even after being closed, causing terminal_destroy to be called twice on the same object. To fix this, I'm adding a function to stop watching an FD.
* compositor-x11: Link to libshared-cairo for icon loading helperKristian Høgsberg2012-11-301-1/+1
| | | | | The X11 backend needs the image loader helper to load the window icon.
* configure.ac: Don't link weston to cairo or image librariesKristian Høgsberg2012-11-307-25/+31
| | | | | | We were pulling in cairo and the image loading libraries through libshared. Split out libshared into a core libshared and a libshared-cairo that pulls in the extra libraries.
* weston.ini: Introduce core section and remove type keys.Scott Moreau2012-11-271-2/+3
| | | | | | | Since a6813d288, there is no longer a "type" key in the [shell] config section. Instead the code accepts a [core] section with a modules key, containing a comma separated list of modules to load. This patch removes the type keys and adds a core section in the example weston.ini config file.
* compositor: Move clearing of primary plane damage to the backendsAnder Conselvan de Oliveira2012-11-275-2/+14
| | | | | | | | | | | | | Backends may move surfaces to different planes, in which case damage is generated in the primary plane. This damage is usually passed to the renderer, but in some cases the backend may decide to not render anything (that's the case when drm compositor scans out a client buffer). In that case the damage on the primary plane would be discarded, leading to artifacts later. This patch makes the backend's responsibility to clear the damage on the primary plane, so that unrendered damage is kept for as long as necessary.
* man: fill missing pieces to weston pagePekka Paalanen2012-11-271-1/+26
| | | | | | | Config file, WAYLAND_SOCKET, XDG_CONFIG_HOME, segfault handler. NOTE: This is a candidate for the stable branch Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* man: add weston-drm pagePekka Paalanen2012-11-274-16/+147
| | | | | | | | | | | Add some documentation about the DRM backend into its own man page, and refer to it in weston(1). Environment variable, that are reserved for backends, and currently used only by the DRM backend, are moved to weston-drm page. NOTE: This is a candidate for the stable branch Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
* xwm: Fix xwm opaque regionScott Moreau2012-11-271-6/+6
| | | | | | | | | Since surface.commit was introduced, opqaue regions are stored in a pending variable that isn't used until surface.commit. Xwayland uses the surface opaque region as a way to tell weston what region of the surface should be opaque. However when this pending opaque region was introduced, xwm was not updated and so we have the 'black = transparent' problem again. This patch fixes the problem by having xwm use the pending opaque regions.
* configure.ac: Bump version to 1.0.11.0.1Kristian Høgsberg2012-11-191-1/+1
|
* simple-egl: Reset opaque region if not fullscreen.Scott Moreau2012-11-191-0/+2
| | | | | | | If simple-egl is toggled fullscreen, the opqaue region is set for the surface but never removed after exiting fullscreen. This patch resets the opaque region to 0 if the surface is not fullscreen and -o was not passed. This fixes the problem introduced sometime since d7f282b84e, when this was last fixed.
* simple-egl: Set the right size for the opaque region when fullscreenAnder Conselvan de Oliveira2012-11-161-2/+2
| | | | | | window.window_size holds the size of the window in windowed mode. Use window.geometry for setting the opaque region since that holds the current size.
* shell/zoom: Increment/decrement disable_planes only when zoom.active changesVille Syrjälä2012-11-162-2/+2
| | | | | | | | | disable_planes should only be incremented when zoom.active actually toggles. Otherwise the counter will be incremented too many times, and planes will no longer get used. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com> Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
* compositor-drm: Don't use overlay when surface alpha != 1.0fVille Syrjälä2012-11-161-0/+3
| | | | | | | Assume that overlays can't handle alpha blending even with a constant alpha factor. Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
* wcap: Transform damage rectangles according to output tranformKristian Høgsberg2012-11-161-0/+52
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=56697
* tests: Remove last GLfloat useKristian Høgsberg2012-11-161-1/+1
| | | | | | With the EGL/GLES2 types out of compositor.h this now fails to compile. https://bugs.freedesktop.org/show_bug.cgi?id=57129
* Fix a typo.Dima Ryazanov2012-11-131-1/+1
|
* Terminal: Handle keypad symbolsDaniel Stone2012-11-081-0/+63
| | | | | | | | XKB provides keypad symbols in a separate namespace. We don't care about the distinction, so map them to normal symbols before starting processing. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* smoke: Remove unused offset memberDaniel Stone2012-11-081-2/+1
| | | | Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* shell: Do not insert input panel layer when lockedJan Arne Petersen2012-11-081-2/+3
| | | | | | | | | | Do not try to insert the input panel layer in the layer list when the shell is locked in show_input_panels(). The layer will already be insrted in resume_desktop() anyways. https://bugs.freedesktop.org/show_bug.cgi?id=56543 Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
* compositor: Use pixman_region32_intersect_rect() instead of temp regionKristian Høgsberg2012-11-081-5/+4
| | | | We avoid reusing 'opaque' and don't leak the region.
* Reset pending surface delta x and y on commitDaniel Stone2012-11-081-0/+2
| | | | | | | | | | | | | The following sequence: wl_surface::attach(s, b, 1, 2) wl_surface::commit(s) wl_surface::commit(s) would actually result in the surface getting moved by (2,4) as the pending attach delta wasn't reset on commit, only by another attach. This only shows up on single-buffered surfaces. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* Clip surface damage to the surface areaDaniel Stone2012-11-081-0/+5
| | | | | | | Otherwise glTexSubImage2D will reject our co-ordinates as being out of bounds. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* SHM: Don't flush damage when there is noneDaniel Stone2012-11-081-1/+2
| | | | | | | | | Every single frame, we were calling the flush_damage handler in the renderer. For GLES2 with subimage, this wasn't too bad as we'd never call glTexSubImage2D, but without it, we'd upload the entire frame through glTexImage2D every time. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* Clients: Don't set the cursor when we have no pointerDaniel Stone2012-11-081-0/+6
| | | | | | | Avoids a segfault whenever we get a key event, and try to set the cursor, dereferencing a NULL input->pointer. Signed-off-by: Daniel Stone <daniel@fooishbar.org>
* window.c: Move misplaced break to where it belongsKristian Høgsberg2012-11-051-1/+1
| | | | | | The break statement wasn't copy and pasted along with the rest of the code causing menu item before it ("Move to workspace below") to fall through to the fullscreen case.
* compositor-drm: Always disable sprites for nowKristian Høgsberg2012-11-021-0/+4
| | | | | Until the nuclear pageflip work lands in KMS, we can't use sprites reliably.
* compositor-x11: verify that detectable repeat was really setRan Benita2012-11-011-1/+3
| | | | | | | | | | Since the XKB says that support for detectable repeat is in fact optional: http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Querying_and_Changing_Per_Client_Flags we might as well be good citizens and check that it was really set. With the X server this would never happen, though. Signed-off-by: Ran Benita <ran234@gmail.com>
* compositor-x11: properly initialize XKB extensionRan Benita2012-11-011-0/+21
| | | | | | | | | | | | In order to use XKB capabilities (as we do), the client must issue an XkbUseExtension request: http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Initializing_the_X_Keyboard_Extension The reason this succeeds currently is that XOpenDisplay from Xlib does this for us. But it is better not to rely on that, but do it explicitly in XCB with the rest of the XKB init sequence. Signed-off-by: Ran Benita <ran234@gmail.com>
* compositor-x11: free or discard XCB generic_error'sRan Benita2012-11-011-8/+7
| | | | | | | | Where we don't look at the error details, pass NULL to the 'error' argument and test using the reply return value instead. Where we do need it, remember to free it. Signed-off-by: Ran Benita <ran234@gmail.com>
* compositor-drm: Add key binding for hidding overlaysAnder Conselvan de Oliveira2012-10-311-1/+18
| | | | | | Pressing ctrl-alt-o will cause the overlays to be hidden, but surfaces will still be assigned to different planes. This helps with debugging of repaint culling below surfaces in other planes.
* compositor: Fix culling of repaints behind opaque surfacesAnder Conselvan de Oliveira2012-10-313-0/+27
| | | | | | | | | | | | | | | | | | Culling of the repaint of a surface behind an opaque surface on the same plane was broken by commit 547149a9 [1]. The idea of that commit is that the damage obscured by an overlay would remain on the primary plane damage and be repainted when the overlay moved. However, in the case the two surfaces are on the same plane, the opaque one is not obscured, so it ends up being repainted. This commit adds an opaque field to struct weston_plane, that is built incrementally when accumulating damage. The opaque region of surfaces on the same plane are removed from the plane's damage, restoring the previous culling behavior. But since damage behind opaque region of other planes is maintained, the bug solved in the mentioned commit is not regressed. https://bugs.freedesktop.org/show_bug.cgi?id=56537
* compositor-x11: use _checked() with xkb_select_events to test for errorRan Benita2012-10-311-8/+8
| | | | | | | | In order to use xcb_request_check(), given a request without a reply, you need to use the _checked() variant of the request function. See xcb-requests(3). Signed-off-by: Ran Benita <ran234@gmail.com>
* window: Fix use-after-free in menu button handlerKristian Høgsberg2012-10-301-3/+2
| | | | | Commit d2fbb3870cfaea623a87ba28c9587676bbdc93f7 introduced a use-after-free error in the case where we destroy the menu.
* window: Only advertise fullscreen menu item if client supports itKristian Høgsberg2012-10-301-11/+17
| | | | | | | | | | If the client doesn't set a fullscreen handler, we can't go fullscreen and shouldn't advertise that in the window menu. The menu implementation is a little simplistic, so we just move the "Fullscreen" entry to the end of the list and don't count it if we don't want it in the menu. https://bugs.freedesktop.org/show_bug.cgi?id=47751 https://bugs.freedesktop.org/show_bug.cgi?id=48106
* image: Set dragging pointer on button press, not first motionKristian Høgsberg2012-10-301-3/+3
| | | | | We want feedback that we're starting to drag when we press the button not when we later start dragging the image.
* image: Combine clamp_view() and center_view ()Kristian Høgsberg2012-10-301-40/+23
| | | | | | | We need to clamp or center on a per axis basis. If the window is wider but the image is taller, we need to center horizontally but clamp vertically. We can only do that if by combining the two functions.
* image: Add keyhandler to handle keyboard zoomKristian Høgsberg2012-10-301-0/+32
|
* image: Set resize handler and center view on resize/fullscreenKristian Høgsberg2012-10-301-0/+10
|
* toytoolkit: Don't destroy window cairo surface on shm attach.Scott Moreau2012-10-301-2/+0
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=52454
* shell: End popups if we trigger a shell grabKristian Høgsberg2012-10-301-3/+20
| | | | | | | | Clicking outside popups closes them except in case of a shell grab (move, resize or rotate), in which case we move the parent window away from under the popup. Instead, just end the popup in those cases. https://bugs.freedesktop.org/show_bug.cgi?id=55674
* compositor: Fix partial repaintsAnder Conselvan de Oliveira2012-10-301-5/+17
| | | | | | | | | | | | | | | | | Partial repaints have been broken since the introduction of the atomic surface updates. The problem was that surface_commit would set the geometry dirty flag unconditionally, causing transform updates on every frame which would in turn cause weston_surface_damage_below() to damage the whole surface area. This patch changes this so that flag is only set if the pending buffer has a different size, the location of the surface changed or the opaque region changed. Note that changing the opaque region will cause a full repaint of the affected surface, because of the transform update. https://bugs.freedesktop.org/show_bug.cgi?id=56538
* window: Make press-drag-release menu selection mode workKristian Høgsberg2012-10-301-2/+7
| | | | | | | | | | | | | | | | | | | | | | The intended behavior is that a quick click (press and then release within 500ms) just pops up the menu and doesn't select anything. Then we can mouse around and and click to select an item. Alternatively, a click and hold (ie press and release after 500ms) lets you press right button, mouse down on the menu item you want and release to select it. This is how menus work in most toolkits. The handling in weston is fine, it's there to handle the case where the button release happens outside any client window, since the client doesn't get those events. If such a release happens late or we get a second release outside the popup window we shut down the popup. The problem is in toytoolkit, where we need to select the item if we get a release within 500ms or if we get a second release. A second release is the case where the first release came after 500ms and didn't pop down the menu, and the second release event is from a click on a menu item. https://bugs.freedesktop.org/show_bug.cgi?id=52456
* compositor-x11: Grab pointer on button press, ungrab on releaseKristian Høgsberg2012-10-301-0/+17
| | | | | | | This lets us confine the X pointer to the Weston X window, which corresponds better with the rendered Wayland cursor actually moves. https://bugs.freedesktop.org/show_bug.cgi?id=53558
* simple-egl: Add a default cursorKristian Høgsberg2012-10-292-1/+34
| | | | | | | | | If clients don't set a cursor, they get whatever the last cursor was before the pointer entered their window. That's a little confusing, so set a pointer on enter to avoid that. The down-side is that simple EGL isn't very simple anymore. https://bugs.freedesktop.org/show_bug.cgi?id=52452
* clients: Remove $(toolkit_libs) from weston_screensaver_CFLAGSKristian Høgsberg2012-10-291-1/+1
| | | | The typo that broke the build.
* window: Ignore input_set_pointer_image() if we don't have a pointerKristian Høgsberg2012-10-291-0/+3
| | | | https://bugs.freedesktop.org/show_bug.cgi?id=55782
* compositor-drm: prefer PCI boot_vga GPU over other GPUsDavid Herrmann2012-10-291-28/+62
| | | | | | | | | | | | | | | | | | | If we can find a boot_vga PCI GPU, we should prefer it over any other GPU that is connected to the system. The boot_vga flag tells us that this GPU is the primary system GPU. This fixes problems on two-GPU-systems were the wrong GPU is used. It also fixes systems were DisplayLink GPUs are available with lower IDs than PCI GPUs (although, this seems unlikely). Note that udev_enumerate guarantees that the entry-list is sorted. So for systems that have platform-GPUs, these should almost always be reported prior to hotpluggable (PCI, USB, ...) GPUs, as the kernel probes them first. https://bugs.freedesktop.org/show_bug.cgi?id=56237 Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>