Pekka Paalanen [Thu, 3 Nov 2011 12:11:32 +0000 (14:11 +0200)]
desktop-shell: launch from the compositor
Fork and exec desktop-shell in the compositor. This is a way to create
an authenticated client. Later, the desktop-shell interface will be
reserved for this client only.
For exec to work, the compositor should be started from the
wayland-demos' root directory.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Ander Conselvan de Oliveira [Tue, 1 Nov 2011 14:37:41 +0000 (16:37 +0200)]
compositor-*: check for surfaceless_gles2 instead of surfaceless_opengl
All the compositors are using GLES2 so check for the appropriate
surfaceless extension.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Kristian Høgsberg [Sat, 29 Oct 2011 19:04:42 +0000 (15:04 -0400)]
compositor: Tweak fade spring to not overshoot
Kristian Høgsberg [Sat, 29 Oct 2011 18:39:13 +0000 (14:39 -0400)]
compositor-x11: Call finish_frame from a timer callback
The repaint logic breaks when finish_frame is called from the present
callback. Ideally we should throttle to vsync (or even better, the
compositor repaint cycle, but hey, X is X), but this goes a long way.
Kristian Høgsberg [Sat, 29 Oct 2011 17:41:18 +0000 (13:41 -0400)]
compositor: Make spring model always use the same time step
Kristian Høgsberg [Sat, 29 Oct 2011 00:41:28 +0000 (20:41 -0400)]
compositor: Clear cursor buffer in create_sprite_from_png()
Ander Conselvan de Oliveira [Thu, 27 Oct 2011 14:09:17 +0000 (17:09 +0300)]
composior: fix tiny cursor bug with drm compositor
The drm compositor always creates a 64x64 bo for the cursor image
regardless of the size of the actual cursor. When the fade animation
kicks in it disables the hardware cursor so that it is rendered as a
regular surface. This surface is rendered to a 32x32 region but using
a 64x64 texture so the cursor gets scaled down.
Fix this by making create_cursor_image return the actual size of the
image created to the compositor.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Casey Dahlin [Tue, 25 Oct 2011 22:58:56 +0000 (18:58 -0400)]
Update .gitignores
Tiago Vignatti [Fri, 28 Oct 2011 17:15:25 +0000 (13:15 -0400)]
evdev: Simplify error path for device creation
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Tiago Vignatti [Fri, 28 Oct 2011 17:09:42 +0000 (13:09 -0400)]
evdev: Delete unused fields from evdev_input_device
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Tiago Vignatti [Fri, 28 Oct 2011 17:05:06 +0000 (13:05 -0400)]
evdev: Add hotplug support
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Ander Conselvan de Oliveira [Wed, 26 Oct 2011 13:48:45 +0000 (16:48 +0300)]
compositor: page flip away from a client buffer if it's destroyed
If the current or pending scanout buffer is destroyed, the client frame
will remain being displayed until something else causes a repaint to be
scheduled.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Kristian Høgsberg [Tue, 25 Oct 2011 13:07:12 +0000 (09:07 -0400)]
Merge remote-tracking branch 'robster/rob/pointer-fixes'
Rob Bradford [Tue, 25 Oct 2011 12:43:44 +0000 (13:43 +0100)]
compositor: Report an error if we cannot the load the pointer image files
Rob Bradford [Tue, 25 Oct 2011 12:38:31 +0000 (13:38 +0100)]
compositor: Don't try and use a NULL sprite for the device pointer
If loading the pointer images to the sprites fails then do not try and use
those NULL sprites for the pointer.
Rob Bradford [Tue, 25 Oct 2011 11:20:51 +0000 (12:20 +0100)]
window: Avoid setting an invalid surface for the pointer
If we failed to load the pointer image to the surface then do not create a
buffer from a NULL surface and do not attach that to the device.
Rob Bradford [Tue, 25 Oct 2011 11:19:36 +0000 (12:19 +0100)]
window: Report an error if we cannot load the pointer files
Kristian Høgsberg [Mon, 24 Oct 2011 21:51:02 +0000 (17:51 -0400)]
compositor: Clean up resource destroy callback handling
Pekka Paalanen [Mon, 24 Oct 2011 14:34:53 +0000 (17:34 +0300)]
compositor: fix drag segfault
Without this fix, the dnd demo would make the demo compositor crash in
shell.c:drag_offer() because resource->data is NULL.
Initialise resource->data in shell_create_drag().
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Ander Conselvan de Oliveira [Mon, 24 Oct 2011 13:30:15 +0000 (16:30 +0300)]
compositor: fix whitespace error in wlsc_output_set_cursor
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Ander Conselvan de Oliveira [Mon, 24 Oct 2011 13:30:14 +0000 (16:30 +0300)]
compositor: don't schedule idle_repaint from calls to repaint
wlsc_output_repaint may call wlsc_surface_damage indirectly through
wlsc_output_set_cursor. If this happens in the call made from repaint,
one ends up with repaint being called from both idle_repaint and
wlsc_output_finish_frame.
Fix this by setting output->repaint_scheduled to 1 before calling
wlsc_output_repaint in the function repaint.
[krh] Edited to just only clear repaint_scheduled, when we no longer have
a repaint scheduled.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Kristian Høgsberg [Mon, 24 Oct 2011 17:26:32 +0000 (13:26 -0400)]
drm: Only add an output once we've successfully initialized it
Kristian Høgsberg [Mon, 24 Oct 2011 17:23:07 +0000 (13:23 -0400)]
drm: Remove unneccesary drm_output_prepare_render() call
Kristian Høgsberg [Mon, 24 Oct 2011 17:13:22 +0000 (13:13 -0400)]
drm: Specify depth as 24 when creating the KMS FB
At least intel kms rejects depth 32 now, and 24 is want we want.
Kristian Høgsberg [Thu, 20 Oct 2011 21:51:45 +0000 (17:51 -0400)]
compositor: Rename scanout surfaces
Let's call the surface that's about to be pageflipped 'pending' and the
one we're currently showing 'scanout'.
Ander Conselvan de Oliveira [Tue, 18 Oct 2011 14:02:07 +0000 (17:02 +0300)]
compositor: don't release the front buffer after page flip
On repaint, wlsc_output_repaint will replace output->scanout_buffer with
the new front buffer and then output->present() will cause this buffer
to be displayed. When wlsc_output_finish_frame is called, the
compositor will send a release buffer event for output->scanout_buffer
which is actually the front buffer now.
This patch changes this code to release the previous scanout_buffer
instead of the front buffer on wlsc_output_finish_frame.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Ander Conselvan de Oliveira [Tue, 18 Oct 2011 14:02:06 +0000 (17:02 +0300)]
compositor: move setup of scanout surface out of wlsc_output_repaint
Move this to a separate function to better accommodate changes in the
following commit.
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Eugeni Dodonov [Mon, 24 Oct 2011 15:49:38 +0000 (13:49 -0200)]
Add missing include for gio.h.
This is needed by GFile, used by view.c.
Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
Kristian Høgsberg [Thu, 20 Oct 2011 18:44:48 +0000 (14:44 -0400)]
cairo-util: Fix another last-minute typo
Kristian Høgsberg [Thu, 20 Oct 2011 17:11:12 +0000 (13:11 -0400)]
cairo-util: Add helper to load jpeg files
Kristian Høgsberg [Thu, 20 Oct 2011 01:16:58 +0000 (21:16 -0400)]
simple-egl: Remove leftover wl_visual variable
Kristian Høgsberg [Wed, 12 Oct 2011 20:29:31 +0000 (16:29 -0400)]
compositor: Silence a couple of valgrind warnings
Kristian Høgsberg [Wed, 12 Oct 2011 04:36:54 +0000 (00:36 -0400)]
compositor: Dont repick for grabbed surfaces
Kristian Høgsberg [Wed, 12 Oct 2011 04:36:16 +0000 (00:36 -0400)]
desktop-shell: Add beginning of pop-up menu to panel
Kristian Høgsberg [Wed, 12 Oct 2011 04:01:18 +0000 (00:01 -0400)]
x11: Fix last-minute edit bug
Kristian Høgsberg [Wed, 12 Oct 2011 03:41:17 +0000 (23:41 -0400)]
x11: Manage xserver focus better
Kristian Høgsberg [Wed, 12 Oct 2011 03:13:30 +0000 (23:13 -0400)]
x11: Handle a few more window property atoms
Kristian Høgsberg [Wed, 12 Oct 2011 02:45:14 +0000 (22:45 -0400)]
x11: Truncate property string to property length
Kristian Høgsberg [Wed, 12 Oct 2011 02:44:23 +0000 (22:44 -0400)]
x11: Add a destroy listener for X11 surfaces
Kristian Høgsberg [Wed, 12 Oct 2011 02:20:37 +0000 (22:20 -0400)]
compositor: Repick focus surface as surfaces come and go
Kristian Høgsberg [Tue, 11 Oct 2011 21:23:02 +0000 (17:23 -0400)]
x11: Use compositor time, not X event time
X event time is not compatible with wlsc_compositor_get_time().
Benjamin Franzke [Fri, 7 Oct 2011 07:33:06 +0000 (09:33 +0200)]
gears: Fail if compiled without cairo-egl
Benjamin Franzke [Tue, 27 Sep 2011 19:57:31 +0000 (21:57 +0200)]
window: Create a cairo device for each egl config
Benjamin Franzke [Fri, 7 Oct 2011 07:08:56 +0000 (09:08 +0200)]
window: Remove display_flush_cairo_device
Rather add a flush_surface utility that
flushed the cairo_device thats associated to a surface.
Benjamin Franzke [Fri, 7 Oct 2011 06:27:26 +0000 (08:27 +0200)]
compositor-drm: Fix invalid usage of udev ressources
The reference returned by udev_list_entry_get_name is
only valid until udev_enumerate_unref is called.
Call unref after the last usage of such.
Benjamin Franzke [Fri, 7 Oct 2011 06:23:22 +0000 (08:23 +0200)]
compositor-drm: Enumerate only cards with name card*
To exclude /dev/dri/controlD* from the enumeration.
Benjamin Franzke [Fri, 7 Oct 2011 06:20:53 +0000 (08:20 +0200)]
compositor-drm: Be patient when output creation fails
Do not fail if e.g. only one of 3 connectors cant be enabled.
Could be that we just have not enough crtcs available.
Benjamin Franzke [Wed, 21 Sep 2011 08:01:30 +0000 (10:01 +0200)]
compositor-openwfd: Fix tty assignment in backend_init
Kristian Høgsberg [Fri, 9 Sep 2011 22:20:52 +0000 (18:20 -0400)]
Handle compositors without wl_shell
Kristian Høgsberg [Wed, 21 Sep 2011 12:47:55 +0000 (08:47 -0400)]
view: Fix reference to wayland-glib.h
Kristian Høgsberg [Wed, 21 Sep 2011 01:43:54 +0000 (21:43 -0400)]
window.c: Move window items to window.c
Kristian Høgsberg [Thu, 15 Sep 2011 19:43:14 +0000 (15:43 -0400)]
Change remaining GPLv2 headers to MIT
The files in question are copyright Benjamin Franzke (who agrees),
Intel Corporation, Red Hat and myself. On behalf of Red Hat,
Richard Fontana says:
"Therefore, to the extent that Red Hat, Inc. has any copyright
interest in the files you cited as of this date (compositor-drm.c,
compositor.c, compositor.h, screenshooter.c in
http://cgit.freedesktop.org/wayland/wayland-demos/tree/compositor),
Red Hat hereby elects to apply the CC0 1.0 Universal Public Domain
Dedication to such copyrighted material. See:
http://creativecommons.org/publicdomain/zero/1.0/legalcode .
Thanks,
Richard E. Fontana
Open Source Licensing and Patent Counsel
Red Hat, Inc."
Kristian Høgsberg [Wed, 14 Sep 2011 21:33:48 +0000 (17:33 -0400)]
window: Stop using glib mainloop in toy toolkit
Kristian Høgsberg [Tue, 13 Sep 2011 18:47:46 +0000 (14:47 -0400)]
Move rounded_rect() to cairo-util.c
Kristian Høgsberg [Wed, 14 Sep 2011 00:58:00 +0000 (20:58 -0400)]
terminal: Make -f (fullscreen) option work again
Tiago Vignatti [Thu, 8 Sep 2011 11:46:06 +0000 (04:46 -0700)]
xserver: check whether pointer exists when exiting
At initialization, if it fails in binding the socket or creating the
lock file then the pointer will be already freed and will result a
segfault when quiting the compositor.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Kristian Høgsberg [Thu, 8 Sep 2011 22:18:02 +0000 (18:18 -0400)]
desktop-shell: Scale background image to output size
Kristian Høgsberg [Thu, 8 Sep 2011 20:56:57 +0000 (16:56 -0400)]
shell: Reject moving or resizing toplevel windows
Kristian Høgsberg [Thu, 8 Sep 2011 20:56:38 +0000 (16:56 -0400)]
window: Default to toplevel windows
Kristian Høgsberg [Thu, 8 Sep 2011 15:48:53 +0000 (11:48 -0400)]
desktop-shell: Add launcher for the Wayland terminal
Kristian Høgsberg [Tue, 6 Sep 2011 22:13:14 +0000 (18:13 -0400)]
Rename motion_grab to implicit_grab
Let's just use the same terms as X.
Kristian Høgsberg [Tue, 6 Sep 2011 22:02:34 +0000 (18:02 -0400)]
clients: Add a simple desktop-shell app
This just provides the background surface and the top panel.
Kristian Høgsberg [Tue, 6 Sep 2011 18:33:52 +0000 (14:33 -0400)]
window: Add enter/leave handlers
Kristian Høgsberg [Tue, 6 Sep 2011 17:48:16 +0000 (13:48 -0400)]
Add a desktop_shell interface
Mostly a toy-thing for now, to allow prototyping a desktop-shell client.
Kristian Høgsberg [Tue, 6 Sep 2011 17:44:56 +0000 (13:44 -0400)]
compositor: Don't crash when receiving kb focus with no surface
Kristian Høgsberg [Tue, 6 Sep 2011 17:43:46 +0000 (13:43 -0400)]
compositor: Drop built-in background support
There should always be a background client (file manager, home screen,
animated wallpaper or just a plain static image).
Kristian Høgsberg [Tue, 6 Sep 2011 17:41:47 +0000 (13:41 -0400)]
compositor: Repick surface when grab ends
We were doing it manually in a few places and forgetting it in the
implicit grab case.
Kristian Høgsberg [Thu, 1 Sep 2011 17:25:50 +0000 (13:25 -0400)]
evdev: Associate touchscreen devices with output up front
This isn't going to change over time, so just tracking it in the
evdev device is a little easier. Also, we need to adjust for the
output position when transforming the device events to screen space.
Tiago Vignatti [Thu, 1 Sep 2011 16:00:05 +0000 (19:00 +0300)]
evdev: treat BTN_TOUCH as BTN_LEFT
idea stolen from xorg evdev.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Tiago Vignatti [Thu, 1 Sep 2011 19:58:17 +0000 (15:58 -0400)]
compositor: choose tty from command line
This is a backend option, so you should use something like '-otty='.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Tiago Vignatti [Thu, 1 Sep 2011 16:00:04 +0000 (19:00 +0300)]
evdev: use last output from compositor to get the screen geometries
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Tiago Vignatti [Thu, 1 Sep 2011 16:00:03 +0000 (19:00 +0300)]
evdev: organize the code for processing events
Nothing was touched, just code moved around.
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
Kristian Høgsberg [Thu, 1 Sep 2011 13:54:57 +0000 (09:54 -0400)]
Use wl_resource_* error functions
Benjamin Franzke [Thu, 1 Sep 2011 08:36:16 +0000 (10:36 +0200)]
clients: Fix typos
And forgotten display_create conversion in view.c.
Matt Roper [Mon, 29 Aug 2011 22:59:37 +0000 (15:59 -0700)]
Turn off hardware cursor when screen fade begins.
The compositor was never actually calling the output backend to turn off
the hardware cursor when the screen begins fading. This would result in
a stuck hardware cursor and movable software cursor for the duration of
the fade/unfade.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Benjamin Franzke [Wed, 31 Aug 2011 09:40:03 +0000 (11:40 +0200)]
Update gitignore
Benjamin Franzke [Tue, 9 Aug 2011 12:33:45 +0000 (14:33 +0200)]
Remove egl display type setenv hack
No longer needed with mesa 7.12-devel egl display autodetection.
Benjamin Franzke [Tue, 30 Aug 2011 09:44:56 +0000 (11:44 +0200)]
compositor-drm: Merge drm_output_destroy and destroy_output
Benjamin Franzke [Tue, 30 Aug 2011 09:38:26 +0000 (11:38 +0200)]
compositor-drm: Coding style fixes
- Reformat indentation and 80-column wrap
- Use output->base rather than output_base
- Remove traling space
Benjamin Franzke [Tue, 30 Aug 2011 09:32:47 +0000 (11:32 +0200)]
Remove return type from wlsc_compositor_shutdown
Fixes "control reaches end of non-void function" warning
and is not needed (yet).
Benjamin Franzke [Tue, 30 Aug 2011 09:29:46 +0000 (11:29 +0200)]
compositor-openwfd: Fix wfd_destroy_output
Dont (incorrectly) call destroy_output
from wfd_destroy_output, rather merge both.
Kristian Høgsberg [Wed, 31 Aug 2011 20:21:38 +0000 (16:21 -0400)]
Move away from visuals and just use EGLConfigs or shm format tokens
Kristian Høgsberg [Mon, 29 Aug 2011 20:47:09 +0000 (16:47 -0400)]
Fix cursor visibility bug
Kristian Høgsberg [Mon, 29 Aug 2011 20:11:10 +0000 (16:11 -0400)]
gears: Don't schedule redraw, just draw from frame callback
Kristian Høgsberg [Mon, 29 Aug 2011 20:09:32 +0000 (16:09 -0400)]
compositor: Discard surface.frame if the surface isn't visible
Kristian Høgsberg [Mon, 29 Aug 2011 20:04:39 +0000 (16:04 -0400)]
compositor: Track bound resources for input device
Kristian Høgsberg [Mon, 29 Aug 2011 20:02:57 +0000 (16:02 -0400)]
compositor: Handle NULL buffer in input_device.attach correctly
Kristian Høgsberg [Mon, 29 Aug 2011 19:03:09 +0000 (15:03 -0400)]
Create resource for wl_output
Kristian Høgsberg [Sat, 27 Aug 2011 01:31:33 +0000 (21:31 -0400)]
simple-shm: Fix inverted logic
Kristian Høgsberg [Fri, 26 Aug 2011 21:21:20 +0000 (17:21 -0400)]
Pass resources to functions that take object references
Kristian Høgsberg [Wed, 24 Aug 2011 15:32:19 +0000 (11:32 -0400)]
clients: Remove a few unused variables
Kristian Høgsberg [Wed, 24 Aug 2011 15:30:21 +0000 (11:30 -0400)]
terminal: Fix unused return value warnings
Kristian Høgsberg [Wed, 24 Aug 2011 15:09:53 +0000 (11:09 -0400)]
window.c: Drop global handler argument
We can just register a global handler directly on the wl_display now.
Kristian Høgsberg [Tue, 23 Aug 2011 22:14:06 +0000 (18:14 -0400)]
clients: Bring clients up to date
Kristian Høgsberg [Fri, 19 Aug 2011 18:41:57 +0000 (14:41 -0400)]
Use wl_display_bind() for binding to globals
Kristian Høgsberg [Fri, 19 Aug 2011 16:07:44 +0000 (12:07 -0400)]
compositor: drop wl_display_add_object()
Kristian Høgsberg [Thu, 18 Aug 2011 21:55:30 +0000 (17:55 -0400)]
compositor: Make all exported objects wl_resources
Kristian Høgsberg [Wed, 17 Aug 2011 03:01:28 +0000 (23:01 -0400)]
Use the new wl_callback interface
Matt Roper [Mon, 29 Aug 2011 20:52:23 +0000 (13:52 -0700)]
Update compositor shutdown code
Adds a general wlsc_compositor_shutdown() function that all output
backends call when shutting down. wlsc_compositor_shutdown() will call
a new 'destroy' method of each output to perform backend-specific
cleanup (e.g., turning off the hardware cursor in the DRM compositor).
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>
Matt Roper [Sat, 27 Aug 2011 00:36:49 +0000 (17:36 -0700)]
Turn off hardware cursors on VT switch before dropping DRM
The DRM cursor ioctl requires DRM master. We shouldn't drop
master until after we're done turning off the hardware cursors
for a VT switch.
Signed-off-by: Matt Roper <matthew.d.roper@intel.com>