Commit Graph

394 Commits

Author SHA1 Message Date
Callum Lowcay
7e08e90c74 terminal: Special keys
Implements support for function, cursor, and editing keys, with
modifiers.  Partially implements application keypad mode.  Expands
control key support.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:35:15 -05:00
Callum Lowcay
256e72f0e2 terminal: Implement character set switching
Includes the 3 vt100 character sets.  Some of the graphic symbols don't
display because they are not included in the default font.  Apparantly
the cairo toy font API doesn't do font substitution.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:35:05 -05:00
Callum Lowcay
69e9658da0 terminal: vt102 editing commands
Implement the vt102 editing commands, and insert/replace mode.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:34:17 -05:00
Callum Lowcay
8e57dd5071 terminal: Basic vt100 escape codes
Implements correct behaviour for vt100 cursor movement, erasing, custom
tabs, and reporting. Includes relevant terminal modes.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:33:46 -05:00
Callum Lowcay
bbeac60b8a terminal: Scroll margins
Implement scroll margins and related escape codes.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:33:35 -05:00
Callum Lowcay
b8609ada50 terminal: Escape sequence handling fixes
Upgrade and refactor terminal_data to properly handle non-csi escape
codes, control characters in escape codes, and invalid escape sequences.
Also fix a buffer overflow in the escape sequence buffer.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:33:05 -05:00
Callum Lowcay
a0ee21c7dc terminal: Window size ioctls
Use TIOCSWINSZ ioctl to set window size on terminal resize.
This causes applications to be notified of the resize event.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 15:15:09 -05:00
Callum Lowcay
30eeae55e0 terminal: Fancy colors
Includes bold, underline, inverse, and blink attributes.  Blink is
rendered bold as in xterm.  Supports xterm's 256 color palette.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 15:14:55 -05:00
Callum Lowcay
15bdc5d1d3 terminal: UTF-8 support
Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 15:14:39 -05:00
Kristian Høgsberg
96ce968b12 gears: Include config.h 2011-01-07 14:42:49 -05:00
Kristian Høgsberg
1926ebab73 Add missing newline in gears error message 2011-01-07 14:04:43 -05:00
nobled
9835417962 Workaround gears depending on cairo-gl
Extremely hacky, but at least it doesn't stop the build anymore.
2011-01-05 23:00:53 +00:00
nobled
f8475c9366 Fix window.c build without cairo-gl 2011-01-05 17:41:55 +00:00
Kristian Høgsberg
82da52b15b Update surface.attach and change surface.map to surface.map_toplevel
The new map_toplevel() request no longer specifies a position and takes
the size from the attached buffer.  The attach request now takes a
position relative to the top-left corner of the old buffer to let
clients specify the relative position of the new buffer.
2010-12-17 09:53:12 -05:00
Kristian Høgsberg
53a7f2137b Fix the resizor 2010-12-16 21:11:10 -05:00
Kristian Høgsberg
5c4056e049 Schedule frame callback in the redraw handler 2010-12-16 14:56:41 -05:00
Kristian Høgsberg
7c221d278a Add window resize sample client
This is an example of how to animate window resizing.  The size is
animated by a simple physics model that allows the user to cancel the
animation halfway and still look good.
2010-12-16 13:35:23 -05:00
Yuval Fledel
45568f6e33 When no DRM present, clients (window.c actually) now either exit orderly,
or if that check is removed - crash (unsurprisingly).
This patch relieves this assumption, and allow some clients (terminal,
image, flower) to run in a non-DRM environment
2010-12-06 09:20:34 -05:00
Kristian Høgsberg
f8fc08f771 Add origin information to output.geometry event 2010-12-01 20:10:10 -05:00
Kristian Høgsberg
2bb3ebe1e4 Create socket in /var/run/user/${HOME}
Use the runtime dir from XDG Base Directory Specification for creating the
socket in a directory only the user can read and write.
2010-12-01 16:53:01 -05:00
Kristian Høgsberg
06bc26401c Fix warnings from adding -Wall back 2010-12-01 09:50:16 -05:00
Kristian Høgsberg
1f25315ae2 Add $(GCC_CFLAGS) back
Missed this when moving to automake.
2010-12-01 09:46:10 -05:00
Joel Teichroeb
0c007aea35 Make the dnd client actually work.
The dnd client now sends a mime type of
application/x-wayland-dnd-flower instead of text/plain.  The dnd
message is just the position and random seed that lets the drop source
add the flower to its grid.
2010-11-30 15:42:37 -05:00
Kristian Høgsberg
d44bc8b8ee Add reject round trip to dnd protocol
This lets a drag target reject a drop.
2010-11-30 15:10:26 -05:00
Kristian Høgsberg
41da90897c Don't hardcode offered dnd types in window.c 2010-11-30 14:01:07 -05:00
Joel Teichroeb
88b272d9ff Made the window save the coordinates when being draged. 2010-11-30 13:26:31 -05:00
Benjamin Franzke
35fd2a8cc6 wayland_client: rename wl_display_create to wl_display_connect
Avoid conflict when using wayland-{server,client} together.
2010-11-29 17:14:38 -05:00
Fred Morcos
c4b8c457e8 fix missing includes in clients/window.h and clients/wayland-glib.h 2010-11-29 08:14:57 -05:00
Kristian Høgsberg
1f5d507596 Define MULT outside the HAVE_CAIRO_GL #ifdef 2010-11-29 08:13:35 -05:00
Darxus
55973f2f5a Some additional return value checking 2010-11-22 21:54:15 -05:00
Yuval Fledel
e9f5e36730 Make clients exit orderly when there is no connection 2010-11-22 15:19:43 -05:00
Kristian Høgsberg
8857a96a97 window: Don't call drag_offer_handler if it's NULL
Reported by canbaby@21cn.com.
2010-11-22 13:02:24 -05:00
Bryce Harrington
156d057e56 Function declares a pointer return, so return one.
These two functions are just wrappers around display_create_*_surface
but weren't forwarding along the result of those calls as is implied by
their return value type.

This fixes a compile-time warning.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
2010-11-22 10:49:07 -05:00
Bryce Harrington
515f63ad72 Quell warning about potentially uninitialized variable 'surface'
In theory, it was possible for an undefined 'surface' to be passed to
window_set_surface().  Instead, explicitly pass NULL.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
2010-11-22 10:48:52 -05:00
Bryce Harrington
f57303f7cf Expose window_set_surface() in window.h
gears.c uses this routine and was complaining about it being implicitly
declared.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
2010-11-22 10:48:35 -05:00
Bryce Harrington
40269a6ed6 Cleanup declared but unused variables.
Make was complaining about a bunch of unused variables that were being
declared.

Signed-off-by: Bryce Harrington <bryce@canonical.com>
2010-11-22 10:48:17 -05:00
Nikolai Kondrashov
7637ff0839 Clean up .gitignore files
Sort the contents and update .gitignore files to hide generated files from
git status output.

Signed-off-by: Nikolai Kondrashov <spbnick@gmail.com>
2010-11-11 20:11:27 -05:00
Kristian Høgsberg
2b43bd73a0 Bring gears example up to date
Must have gears.
2010-11-08 15:46:02 -05:00
Johan Bilien
990854d019 Fixed a bogus call to cairo_destroy 2010-11-08 08:55:50 -05:00
Kristian Høgsberg
0bfb126e59 Add /wayland so we pick up generated header files
Reported by Benjamin Franzke.
2010-10-31 14:24:39 -04:00
Chia-I Wu
4d8ba216c5 Make sure there is a current context.
The context of a display is shared with the cairo device.
cairo_acquire_device should be called whenever OpenGL calls are made.
2010-10-29 12:49:57 -04:00
Chia-I Wu
1f411902de Use glTexSubImage to update the pixels.
glTexImage causes respecification.  The DRM buffer a client renders to
will be different from that used to create the wl_buffer.
2010-10-29 12:34:47 -04:00
Kristian Høgsberg
332073b9db List libtoytoolkit.la before libwayland-client.la on the link line
Fixes link order for --as-needed linking.
2010-10-27 15:02:51 -04:00
Kristian Høgsberg
012a007771 Add small client for testing shm surfaces 2010-10-26 10:37:55 -04:00
Kristian Høgsberg
d0c3b9da22 Fall back to cairo image backend and shm surface if we don't have cairo gl 2010-10-25 11:40:03 -04:00
Kristian Høgsberg
f0152daad7 Use automake 2010-10-12 18:00:16 -04:00
Kristian Høgsberg
118fb49eeb Fix clients include path after moving files around 2010-10-12 13:53:13 -04:00
Kristian Høgsberg
45115a435e Fix screenshoot.c type in Makefile 2010-09-17 09:04:46 -04:00
Kristian Høgsberg
3dd66d66a3 Use scanner to generate screenshooter client code as well 2010-09-14 16:23:24 -04:00
Kristian Høgsberg
ce457ba68c Add timestamp to pointer image attach request
This lets the server discard requests received after the pointer has
exited and the re-entered a surface.
2010-09-14 15:39:45 -04:00
Kristian Høgsberg
6dd08ebbe1 Move core protocol libraries into wayland/ subdirectory 2010-09-14 12:41:55 -04:00
Kristian Høgsberg
ab2f1cddc6 Dont post damage event from window_copy_surface
We always call this between window_draw() and attaching the window surface
so the surface we're copying to isn't visible.
2010-09-07 22:01:32 -04:00
Kristian Høgsberg
7d804068b6 Only set pointer image when it changes 2010-09-07 21:50:06 -04:00
Kristian Høgsberg
9d69f8e796 Replace commit/ack/frame protocol with simpler sync and frame callbacks 2010-09-03 14:46:38 -04:00
Kristian Høgsberg
e9d37bdc5f Use a transient object for the dnd session 2010-09-02 20:22:42 -04:00
Kristian Høgsberg
8ca1cc20a1 flower: Clear surface 2010-08-30 08:21:44 -04:00
Kristian Høgsberg
c7c60646ad Add options to specify xkb details 2010-08-29 21:33:39 -04:00
Kristian Høgsberg
30620609b2 Remove debug message 2010-08-29 21:12:25 -04:00
Kristian Høgsberg
e968f9c6b9 Provide visual feedback as to whether drop is supported
Change the cursor in response to target events.
2010-08-27 22:18:00 -04:00
Kristian Høgsberg
4eb536091a Update drag protocol to use fd passing for data transfer 2010-08-27 20:30:26 -04:00
Kristian Høgsberg
1d7ffd32f8 Set pointer image only in response to 'target' event 2010-08-25 16:34:05 -04:00
Kristian Høgsberg
8a40871645 A few makefile/autoconf fixes 2010-08-25 13:38:40 -04:00
Kristian Høgsberg
b12fcceeb7 Update to EGL_MESA_drm_image from mesa master
Woo, running on stock mesa now.
2010-08-25 10:02:20 -04:00
Kristian Høgsberg
506e20eed9 More work on dnd 2010-08-19 17:26:02 -04:00
Kristian Høgsberg
b8cc24e1a8 Actually add dnd client 2010-08-18 20:31:06 -04:00
Kristian Høgsberg
9a686243b6 Add a drag and drop test client 2010-08-18 15:28:04 -04:00
Kristian Høgsberg
10ddbd220a Insert unexplainable cairo_device_flush() to fix terminal drawing 2010-08-16 21:08:52 -04:00
Kristian Høgsberg
da275dd09f Add client side pointer image handling 2010-08-16 17:47:07 -04:00
Kristian Høgsberg
4219a407ae Add DMZ cursor theme
Some day we can make this parse X cursor themes
2010-08-16 16:43:50 -04:00
Kristian Høgsberg
b91cd10fcb Move cairo-util.[ch] to clients/ 2010-08-16 16:23:12 -04:00
Kristian Høgsberg
a661f263b4 Name libraries -client and -server for consistency
Instead of wayland-server and wayland...
2010-08-11 08:56:13 -04:00
Kristian Høgsberg
4fe1a3ed3a Don't track globals in the client lib, just send out events
Users of the client library must install an global handler to get access
to globals.
2010-08-10 14:13:23 -04:00
Kristian Høgsberg
640609acfc Implement current drm auth scheme in the drm object 2010-08-09 22:11:47 -04:00
Kristian Høgsberg
5fcd0aa58e Introduce 'buffer' object for attaching, image cahce and cursor images
The buffer object is created by a 'drm' object, which encapsulates the
buffer sharing and authentication mechanism.  Once the buffer is created
it can be attached to a surface.
2010-08-09 14:43:33 -04:00
Kristian Høgsberg
6d70202f80 Send out coordinates with pointer_focus event
We can't rely on motion events happening right away, pointer_focus could
change because of windows coming or going etc.
2010-08-06 15:12:26 -04:00
Kristian Høgsberg
83fc061c9c Introduce 'shell' object for moving and resizing surfaces in the compositor 2010-08-04 22:44:55 -04:00
Kristian Høgsberg
43788b13df Update keyboard focus handler signatures 2010-07-28 23:51:05 -04:00
Kristian Høgsberg
379b678c57 Use EGL_KHR_surfaceless_opengl 2010-07-28 23:51:00 -04:00
Kristian Høgsberg
808fd41861 Drop coordinates from buttons press, add timestamp to events 2010-07-20 17:06:19 -04:00
Kristian Høgsberg
f252d6a98e Update to use eglGetDRMDisplayMESA() 2010-07-08 20:15:10 -04:00
Kristian Høgsberg
3e6e7e6acb Track libxkbcommon API changes 2010-07-02 15:12:02 -04:00
Kristian Høgsberg
2d6b7c118b Fix some warnings 2010-06-25 16:51:57 -04:00
Kristian Høgsberg
94adf6cb9e Use libxkbcommon for mapping keycodes to keysyms 2010-06-25 16:50:05 -04:00
Kristian Høgsberg
c8c3734ef9 Set window user data using separate function 2010-06-25 11:19:22 -04:00
Kristian Høgsberg
dcb71b62a0 Update decoration drawing to be less cairo path happy 2010-06-15 17:16:35 -04:00
Kristian Høgsberg
80d746f6e3 Consolidate redraw scheduling in window.c 2010-06-14 23:52:50 -04:00
Kristian Høgsberg
0953162db8 Fix resizing 2010-06-14 23:22:15 -04:00
Kristian Høgsberg
bf6ceda545 Implement resizing from all sides 2010-06-14 20:25:06 -04:00
Kristian Høgsberg
fc783d4071 Split native drm part of compositor out 2010-06-11 12:56:45 -04:00
Kristian Høgsberg
478d9265f9 Send device name at connect time 2010-06-08 20:34:11 -04:00
Kristian Høgsberg
7824d81e07 Consolidate more code in clients/window.c 2010-06-08 14:59:44 -04:00
Kristian Høgsberg
a85fe3cf45 Use cairo-gl in clients 2010-06-08 14:08:30 -04:00
Kristian Høgsberg
f88ae45e41 Make clients at least compile for now 2010-06-06 22:28:16 -04:00
Kristian Høgsberg
b2a432ef18 Move clients to subdirectory 2010-06-04 21:46:55 -04:00