Kristian Høgsberg [Thu, 15 Jan 2009 16:44:35 +0000 (11:44 -0500)]
Initialize output position properly.
Kristian Høgsberg [Thu, 15 Jan 2009 17:45:49 +0000 (12:45 -0500)]
Randomize flower offset again.
Kristian Høgsberg [Thu, 15 Jan 2009 17:50:21 +0000 (12:50 -0500)]
Update to track udev API change in eagle.
Kristian Høgsberg [Wed, 31 Dec 2008 21:24:16 +0000 (16:24 -0500)]
Add wayland udev rules file.
Kristian Høgsberg [Wed, 31 Dec 2008 21:18:42 +0000 (16:18 -0500)]
Split out per-output state, use libudev for enumerating hardware.
This paves the way for proper multi-head support and removes more
hardcoded i965 defaults by using udev to discover output devices
and their PCI IDs.
Kristian Høgsberg [Tue, 30 Dec 2008 19:31:33 +0000 (14:31 -0500)]
Use libudev for enumerating input devices.
Kristian Høgsberg [Tue, 30 Dec 2008 16:03:33 +0000 (11:03 -0500)]
Add listener interfaces for output and input_device objects.
Kristian Høgsberg [Tue, 30 Dec 2008 15:53:20 +0000 (10:53 -0500)]
Use a more generic glob for input devices.
Kristian Høgsberg [Thu, 25 Dec 2008 00:30:25 +0000 (19:30 -0500)]
Add client side demarshalling for events.
This also consolidates the marshalling code in connection.c and
uses the same functions in the server and client for marshalling.
Kristian Høgsberg [Mon, 22 Dec 2008 23:06:49 +0000 (18:06 -0500)]
Track objects client side using a hash too.
This leads up to using the demarshal machinery for decoding events
in the client library.
Kristian Høgsberg [Mon, 22 Dec 2008 21:37:07 +0000 (16:37 -0500)]
Add a proxy for the server side output object.
Kristian Høgsberg [Mon, 22 Dec 2008 17:14:50 +0000 (12:14 -0500)]
Add a fullscreen mode to the terminal.
Kristian Høgsberg [Mon, 22 Dec 2008 04:37:12 +0000 (23:37 -0500)]
Add hook to allow globals to send cold-plug events to new clients.
This lets us boot strap the client side state cache. This commit also adds the first user
of this feature, an output object that represents the current output. Very simple
at this point, but will grow to something more like RandR 1.2.
Kristian Høgsberg [Mon, 22 Dec 2008 03:50:32 +0000 (22:50 -0500)]
Also check for interface version wl_display_get_object_id().
Kristian Høgsberg [Mon, 22 Dec 2008 03:45:33 +0000 (22:45 -0500)]
Send client id range as an event.
This also makes the server send the event again when the client is
about to exhaust its current client range.
Kristian Høgsberg [Mon, 22 Dec 2008 02:54:51 +0000 (21:54 -0500)]
Represent event and method metadata with struct wl_message.
Kristian Høgsberg [Mon, 22 Dec 2008 02:50:23 +0000 (21:50 -0500)]
Move protocol metadata to wayland-protocol.[ch].
This lets us share the metadata between server and client and we
can now use a va_arg marshalling function for sending client
requets.
Kristian Høgsberg [Mon, 22 Dec 2008 01:25:16 +0000 (20:25 -0500)]
Advertise globals using a new display event.
Kristian Høgsberg [Mon, 22 Dec 2008 00:33:09 +0000 (19:33 -0500)]
Consolidate tty setup and fix a few spacing issues.
Kristian Høgsberg [Mon, 22 Dec 2008 00:30:01 +0000 (19:30 -0500)]
Oops, fix compilation.
Kristian Høgsberg [Sun, 21 Dec 2008 22:26:00 +0000 (17:26 -0500)]
Move coordinate transformation to pick_surface().
Ray Strode [Sat, 20 Dec 2008 07:00:49 +0000 (02:00 -0500)]
Only forward events to compositor if on active VT
Previously, we'd send things like the user's password
to the active irc window when they logged into a getty
running on a different tty.
Kristian Høgsberg [Fri, 19 Dec 2008 22:37:49 +0000 (17:37 -0500)]
Handle more control characters in terminal.
Ray Strode [Fri, 19 Dec 2008 19:28:02 +0000 (14:28 -0500)]
Ignore tty input
Previously, ctrl-c would kill wayland and input like
passwords and commands would get typed into the terminal
under the scenes.
Kristian Høgsberg [Fri, 19 Dec 2008 18:54:40 +0000 (13:54 -0500)]
Drop the silly overlay hack.
Kristian Høgsberg [Fri, 19 Dec 2008 18:47:53 +0000 (13:47 -0500)]
Rename egl-compositor to wayland-system-compositor.
The wayland-system-compositor is the top-level compositor. X sessions
or nested Wayland sessions will run as clients of the system compositor.
The system compositor is licensed under the GPL.
Kristian Høgsberg [Fri, 19 Dec 2008 17:13:42 +0000 (12:13 -0500)]
Use the new eagle config chooser for picking the config.
Kristian Høgsberg [Fri, 19 Dec 2008 16:17:38 +0000 (11:17 -0500)]
Remove visual debug prints.
Kristian Høgsberg [Fri, 19 Dec 2008 15:34:02 +0000 (10:34 -0500)]
Cache modesetting data and just do drmModeSetCrtc on vt enter.
Kristian Høgsberg [Fri, 19 Dec 2008 15:15:35 +0000 (10:15 -0500)]
Do vt ioctl on the right fd.
Ray Strode [Fri, 19 Dec 2008 06:45:41 +0000 (01:45 -0500)]
Restore framebuffer when switching back to VT
The kernel currently automatically redirects
output to the kernel framebuffer when switching
VTs away from wayland. It doesn't restore
output back to wayland's fb when coming back
to the VT. This patch works around that issue.
Ray Strode [Fri, 19 Dec 2008 05:22:18 +0000 (00:22 -0500)]
Add new event loop api for watching signals
This will provide us with a nice, safe mechanism
for getting notification of VT changes.
Ray Strode [Fri, 19 Dec 2008 04:05:43 +0000 (23:05 -0500)]
Force pointer to stay on screen.
Without this change it's really easy to
accidentally send the pointer flying and not
be able to get it back.
Kristian Høgsberg [Fri, 19 Dec 2008 02:40:03 +0000 (21:40 -0500)]
Scale background pixbuf when loading.
This lets us avoid hitting the texture limit for some backgrounds.
Ray Strode [Fri, 19 Dec 2008 02:05:20 +0000 (21:05 -0500)]
Fix rgb byte order for GdkPixbuf backgrounds.
Kristian Høgsberg [Fri, 19 Dec 2008 00:58:44 +0000 (19:58 -0500)]
Remember to handle rgb_visual case in surface_attach.
Kristian Høgsberg [Thu, 18 Dec 2008 22:55:33 +0000 (17:55 -0500)]
Add preliminary visual support.
Kristian Høgsberg [Thu, 18 Dec 2008 19:50:08 +0000 (14:50 -0500)]
Set terminal type to vt100.
Kristian Høgsberg [Thu, 18 Dec 2008 18:18:02 +0000 (13:18 -0500)]
Don't pin front buffer, kernel modesetting takes care of that now.
Kristian Høgsberg [Thu, 18 Dec 2008 17:08:19 +0000 (12:08 -0500)]
Fall back to solid color background if not image is found.
Kristian Høgsberg [Tue, 16 Dec 2008 01:35:24 +0000 (20:35 -0500)]
Redesign the compositor / server interface.
This lets the compositor directly provide the implementation of the RMI
objects for the surface object and a new compositor object. We avoid the
manual forwarding of requests into the compositor and the clumsy compositor
interface struct.
Kristian Høgsberg [Sun, 14 Dec 2008 20:53:13 +0000 (15:53 -0500)]
Use gdk-pixbuf for saving the screenshot.
Kristian Høgsberg [Sun, 14 Dec 2008 20:52:34 +0000 (15:52 -0500)]
Initialize count to 0 in wl_list_length().
Not sure how this ever really worked before...
Kristian Høgsberg [Fri, 12 Dec 2008 19:48:46 +0000 (14:48 -0500)]
Fix default input device path.
Kristian Høgsberg [Fri, 12 Dec 2008 18:48:30 +0000 (13:48 -0500)]
Handle per-device keyboard focus.
Kristian Høgsberg [Fri, 12 Dec 2008 18:39:03 +0000 (13:39 -0500)]
Don't close uninitialized fd, check forkpty error.
Kristian Høgsberg [Fri, 12 Dec 2008 17:00:02 +0000 (12:00 -0500)]
Make multi-pointer work.
This also add command line parsing as a way to specify the input
device files to use.
Kristian Høgsberg [Fri, 12 Dec 2008 16:06:18 +0000 (11:06 -0500)]
Add option parsing using GOption.
Kristian Høgsberg [Fri, 12 Dec 2008 16:05:17 +0000 (11:05 -0500)]
Make sure we initialize object hash.
This patch also move the hash implementation details to wayland-util.c.
Kristian Høgsberg [Fri, 12 Dec 2008 15:33:04 +0000 (10:33 -0500)]
Use the screen size for sizing the background.
Kristian Høgsberg [Fri, 12 Dec 2008 15:26:04 +0000 (10:26 -0500)]
Pass -fPIC when compiling shared libraries.
Kristian Høgsberg [Fri, 12 Dec 2008 14:53:27 +0000 (09:53 -0500)]
Forgot to add egl-compositor.h.
Kristian Høgsberg [Fri, 12 Dec 2008 04:27:27 +0000 (23:27 -0500)]
Implement passive grabs on button clicks.
Kristian Høgsberg [Fri, 12 Dec 2008 04:18:45 +0000 (23:18 -0500)]
Rewrite input event delivery path.
Instead of having the input driver push the events into the core server,
only to have the server call back out to the compositor hooks, the driver now
just calls the compositor directly. The input drivers are always dependent on
the type of compositor anyway so there was no point in passing the events
through the server. Now the server is only involved when it's time to actually
send the events to the clients.
Kristian Høgsberg [Wed, 10 Dec 2008 22:31:44 +0000 (17:31 -0500)]
Fix signature for pointer motion event.
Kristian Høgsberg [Wed, 10 Dec 2008 22:26:28 +0000 (17:26 -0500)]
Drop glx-compositor for now.
Might want to resurrect this later, but for now, let's not try to
drag it along.
Kristian Høgsberg [Wed, 10 Dec 2008 18:44:23 +0000 (13:44 -0500)]
Install libraries plus headers and add pkg-config files.
Kristian Høgsberg [Wed, 10 Dec 2008 18:25:00 +0000 (13:25 -0500)]
Only send key events to toplevel surface.
Kristian Høgsberg [Wed, 10 Dec 2008 18:16:50 +0000 (13:16 -0500)]
Feed button events through compositor.
This also generalizes the code to send events to a surface a bit.
Kristian Høgsberg [Wed, 10 Dec 2008 15:42:04 +0000 (10:42 -0500)]
Feed motion events through compositor.
This lets us pass events only to the window that we're mousing over
and we can now transform input events back to the window coordinate space.
Kristian Høgsberg [Wed, 10 Dec 2008 05:40:50 +0000 (00:40 -0500)]
Drop surface iterator API, just track surfaces in the compositor.
Kristian Høgsberg [Wed, 10 Dec 2008 05:24:18 +0000 (00:24 -0500)]
Pass button clicks through to compositor.
This lets us handle raising windows, which is useful.
Kristian Høgsberg [Tue, 9 Dec 2008 18:35:35 +0000 (13:35 -0500)]
Use bilinear filtering.
Kristian Høgsberg [Tue, 9 Dec 2008 15:47:36 +0000 (10:47 -0500)]
Handle interrupted system calls in connection code.
Kristian Høgsberg [Tue, 9 Dec 2008 03:22:25 +0000 (22:22 -0500)]
Implement a bunch of escape codes.
Bash command line editing and gdb is pretty much there. Emacs, vi and even less
need more work.
Kristian Høgsberg [Mon, 8 Dec 2008 19:07:33 +0000 (14:07 -0500)]
Fix wl_method for screenshooter.
Kristian Høgsberg [Mon, 8 Dec 2008 19:06:56 +0000 (14:06 -0500)]
Tweak terminal font color.
Kristian Høgsberg [Mon, 8 Dec 2008 18:52:08 +0000 (13:52 -0500)]
Don't forget to initialize overlay position.
Kristian Høgsberg [Mon, 8 Dec 2008 18:50:07 +0000 (13:50 -0500)]
Let clients override the suggested size on resize.
This lets gears enforce a square aspect ration and minimum size of 300x300
and the terminal now properly resizes in steps of character cells.
Kristian Høgsberg [Mon, 8 Dec 2008 17:59:37 +0000 (12:59 -0500)]
Snap terminal size to an integer number of character cells.
Kristian Høgsberg [Mon, 8 Dec 2008 17:20:40 +0000 (12:20 -0500)]
Handle \e[J and \e[H so we can clear the terminal.
Kristian Høgsberg [Mon, 8 Dec 2008 16:13:26 +0000 (11:13 -0500)]
Make sure we don't miss queue redraws between commit and ack.
Kristian Høgsberg [Mon, 8 Dec 2008 14:57:08 +0000 (09:57 -0500)]
Destroy back buffer in acknowledge handler.
Kristian Høgsberg [Mon, 8 Dec 2008 14:39:22 +0000 (09:39 -0500)]
Only update gears angle in frame handler.
Kristian Høgsberg [Mon, 8 Dec 2008 05:23:55 +0000 (00:23 -0500)]
Add key map for ctrl modifier as well.
Kristian Høgsberg [Mon, 8 Dec 2008 05:16:39 +0000 (00:16 -0500)]
Update tail pointer correctly so scrolling works.
Kristian Høgsberg [Mon, 8 Dec 2008 05:07:49 +0000 (00:07 -0500)]
Skip escape codes for now.
Kristian Høgsberg [Mon, 8 Dec 2008 05:01:36 +0000 (00:01 -0500)]
Add keyboard input to terminal.
Kristian Høgsberg [Mon, 8 Dec 2008 04:17:31 +0000 (23:17 -0500)]
Run command in a pty and feed output to wayland terminal.
Kristian Høgsberg [Mon, 8 Dec 2008 02:51:58 +0000 (21:51 -0500)]
Add some text contents to terminal.
Kristian Høgsberg [Mon, 8 Dec 2008 00:59:11 +0000 (19:59 -0500)]
Refactor window logic into reusable parts, add a new terminal application.
The gears code is moved into a new file gearc.c and the window decoration
and management code stays in window.c. A new application 'terminal' is the
second user of the windowing code, but doesn't do anything useful yet.
Kristian Høgsberg [Sun, 7 Dec 2008 20:22:22 +0000 (15:22 -0500)]
Fix API to always include socket name length.
Kristian Høgsberg [Fri, 5 Dec 2008 16:20:30 +0000 (11:20 -0500)]
Update .gitignore.
Kristian Høgsberg [Fri, 5 Dec 2008 16:19:56 +0000 (11:19 -0500)]
Fail if we can't create the compositor.
Kristian Høgsberg [Fri, 5 Dec 2008 16:13:50 +0000 (11:13 -0500)]
Make the wayland server a library used by the compositors.
Kristian Høgsberg [Fri, 5 Dec 2008 15:38:42 +0000 (10:38 -0500)]
Use type strings for method and event signatures.
Kristian Høgsberg [Fri, 5 Dec 2008 03:48:50 +0000 (22:48 -0500)]
Use autoconf instead of $(shell ...) in the Makefile.
Kristian Høgsberg [Thu, 4 Dec 2008 23:40:14 +0000 (18:40 -0500)]
Add note about how clients could embed other applications.
Kristian Høgsberg [Tue, 2 Dec 2008 23:28:23 +0000 (18:28 -0500)]
Fix namespace convention for glib source.
Kristian Høgsberg [Tue, 2 Dec 2008 20:38:53 +0000 (15:38 -0500)]
Exit if load_compositor() fails.
Kristian Høgsberg [Tue, 2 Dec 2008 20:18:38 +0000 (15:18 -0500)]
Update .gitignore.
Kristian Høgsberg [Tue, 2 Dec 2008 20:17:28 +0000 (15:17 -0500)]
Drop early, obsolete compositor.
Kristian Høgsberg [Tue, 2 Dec 2008 20:16:11 +0000 (15:16 -0500)]
Drop unused clients, pointer and window.
Kristian Høgsberg [Tue, 2 Dec 2008 20:15:01 +0000 (15:15 -0500)]
Put Wayland under the MIT license.
Kristian Høgsberg [Sat, 29 Nov 2008 00:12:45 +0000 (19:12 -0500)]
Add wl_client_marshal() for sending events.
Kristian Høgsberg [Fri, 28 Nov 2008 23:35:25 +0000 (18:35 -0500)]
Generalize event loop a bit and pull in the timerfd stuff.
Kristian Høgsberg [Fri, 28 Nov 2008 22:06:06 +0000 (17:06 -0500)]
Finally implement the commit/ack/frame protocol and improve repaint loop.
This implements the commit/ack/frame protocol that let clients batch up
a series of requests and then commit them atomically using the commit request.
The commit requests generats two following events: the acknowledge event,
which lets the client know that the server has received the request and
which frame the rendering has been scheduled for. At this point the client
can start rendering the next frame or free up temporary buffers. Then when
the compositor finally makes the newly composited frame visible on screen
the server sends a frame event, which contains the number of the frame that
was presented and the time when it happened.
The window and flower clients have been updated to use these two events in
their main loops and everything now updates per frame. The EGL compositor
repaint loop has been tweaked to delay the compositing of the screen to
10ms after last swapbuffer completed so as to allow processing as many
requests as possible before blocking on the next vertical retrace.
Kristian Høgsberg [Wed, 26 Nov 2008 17:57:31 +0000 (12:57 -0500)]
Make ack event signal that the requests have been composited.
Kristian Høgsberg [Wed, 26 Nov 2008 04:18:29 +0000 (23:18 -0500)]
Add .gitignore.
Kristian Høgsberg [Wed, 26 Nov 2008 04:16:31 +0000 (23:16 -0500)]
Convert touchpad absolute events to relative.