Commit graph

7174 commits

Author SHA1 Message Date
Kristian Høgsberg d6531261de Add option parsing using GOption. 2008-12-12 12:17:51 -05:00
Kristian Høgsberg 864c468b42 Make sure we initialize object hash.
This patch also move the hash implementation details to wayland-util.c.
2008-12-12 12:17:47 -05:00
Kristian Høgsberg 997e71eb1e Use the screen size for sizing the background. 2008-12-12 10:33:04 -05:00
Kristian Høgsberg 9e4c76b530 Pass -fPIC when compiling shared libraries. 2008-12-12 10:26:04 -05:00
Kristian Høgsberg aad70ba986 Forgot to add egl-compositor.h. 2008-12-12 09:53:27 -05:00
Kristian Høgsberg 29573bc569 Implement passive grabs on button clicks. 2008-12-11 23:27:27 -05:00
Kristian Høgsberg 5ee1a60f1a 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.
2008-12-11 23:18:45 -05:00
Kristian Høgsberg d1c58d60f6 Fix signature for pointer motion event. 2008-12-10 17:31:44 -05:00
Kristian Høgsberg b96785ca61 Drop glx-compositor for now.
Might want to resurrect this later, but for now, let's not try to
drag it along.
2008-12-10 17:26:28 -05:00
Kristian Høgsberg 4a8767bbb7 Install libraries plus headers and add pkg-config files. 2008-12-10 13:49:28 -05:00
Kristian Høgsberg 7fdff04cdc Only send key events to toplevel surface. 2008-12-10 13:25:00 -05:00
Kristian Høgsberg 5a75c90d01 Feed button events through compositor.
This also generalizes the code to send events to a surface a bit.
2008-12-10 13:16:50 -05:00
Kristian Høgsberg 715a081cf4 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.
2008-12-10 10:42:04 -05:00
Kristian Høgsberg 201a904889 Drop surface iterator API, just track surfaces in the compositor. 2008-12-10 00:40:50 -05:00
Kristian Høgsberg eac149ad06 Pass button clicks through to compositor.
This lets us handle raising windows, which is useful.
2008-12-10 00:24:18 -05:00
Kristian Høgsberg 98fed0fb84 Use bilinear filtering. 2008-12-09 13:35:35 -05:00
Kristian Høgsberg fdea72a078 Handle interrupted system calls in connection code. 2008-12-09 10:48:52 -05:00
Kristian Høgsberg dbd54640f4 Implement a bunch of escape codes.
Bash command line editing and gdb is pretty much there.  Emacs, vi and even less
need more work.
2008-12-08 22:22:25 -05:00
Kristian Høgsberg 73f4e760a2 Fix wl_method for screenshooter. 2008-12-08 14:07:33 -05:00
Kristian Høgsberg 6e0a2f8953 Tweak terminal font color. 2008-12-08 14:06:56 -05:00
Kristian Høgsberg 9f88b185a0 Don't forget to initialize overlay position. 2008-12-08 13:52:08 -05:00
Kristian Høgsberg 221067654c 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.
2008-12-08 13:50:07 -05:00
Kristian Høgsberg 1584c57edc Snap terminal size to an integer number of character cells. 2008-12-08 12:59:37 -05:00
Kristian Høgsberg 17809b1e43 Handle \e[J and \e[H so we can clear the terminal. 2008-12-08 12:20:40 -05:00
Kristian Høgsberg 721f09f187 Make sure we don't miss queue redraws between commit and ack. 2008-12-08 11:13:26 -05:00
Kristian Høgsberg c47303f2d2 Destroy back buffer in acknowledge handler. 2008-12-08 09:57:08 -05:00
Kristian Høgsberg 7a8431f670 Only update gears angle in frame handler. 2008-12-08 09:39:22 -05:00
Kristian Høgsberg 0d77fd484c Add key map for ctrl modifier as well. 2008-12-08 00:23:55 -05:00
Kristian Høgsberg b29415ee6d Update tail pointer correctly so scrolling works. 2008-12-08 00:16:39 -05:00
Kristian Høgsberg f04e838d4a Skip escape codes for now. 2008-12-08 00:07:49 -05:00
Kristian Høgsberg 6e83d58153 Add keyboard input to terminal. 2008-12-08 00:01:36 -05:00
Kristian Høgsberg 269d6e3daf Run command in a pty and feed output to wayland terminal. 2008-12-07 23:17:31 -05:00
Kristian Høgsberg 44e3c5e1ad Add some text contents to terminal. 2008-12-07 21:51:58 -05:00
Kristian Høgsberg 0c4457f0c2 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.
2008-12-07 20:05:36 -05:00
Kristian Høgsberg dc0f355f0a Fix API to always include socket name length. 2008-12-07 15:22:22 -05:00
Kristian Høgsberg cb70316105 Update .gitignore. 2008-12-05 11:20:30 -05:00
Kristian Høgsberg 841883b43c Fail if we can't create the compositor. 2008-12-05 11:19:56 -05:00
Kristian Høgsberg 122912c69b Make the wayland server a library used by the compositors. 2008-12-05 11:13:50 -05:00
Kristian Høgsberg 87e0a384da Use type strings for method and event signatures. 2008-12-05 10:38:42 -05:00
Kristian Høgsberg d4de54efe7 Use autoconf instead of $(shell ...) in the Makefile. 2008-12-04 23:00:01 -05:00
Kristian Høgsberg b820b82cad Add note about how clients could embed other applications. 2008-12-04 18:40:14 -05:00
Kristian Høgsberg e2ce43a9be Fix namespace convention for glib source. 2008-12-02 18:28:23 -05:00
Kristian Høgsberg 35052568d0 Exit if load_compositor() fails. 2008-12-02 15:38:53 -05:00
Kristian Høgsberg d91e049735 Update .gitignore. 2008-12-02 15:18:38 -05:00
Kristian Høgsberg fcb6cbd5d0 Drop early, obsolete compositor. 2008-12-02 15:17:28 -05:00
Kristian Høgsberg 3620295d17 Drop unused clients, pointer and window. 2008-12-02 15:16:11 -05:00
Kristian Høgsberg ffd710e653 Put Wayland under the MIT license. 2008-12-02 15:15:01 -05:00
Kristian Høgsberg c2b633e6c2 Add wl_client_marshal() for sending events. 2008-11-28 19:12:45 -05:00
Kristian Høgsberg 4a29890da7 Generalize event loop a bit and pull in the timerfd stuff. 2008-11-28 18:35:25 -05:00
Kristian Høgsberg fbdbbdc153 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.
2008-11-28 17:06:10 -05:00