Commit Graph

760 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
052d17d4d9 Map new surfaces on top of all other surface 2011-01-07 16:13:00 -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
Kristian Høgsberg
8a457e3e9f Simplify visual check 2011-01-07 09:19:25 -05:00
Kristian Høgsberg
8f66a57b4d Ignore surface.map_toplevel() if already mapped 2011-01-07 08:38:56 -05:00
Kristian Høgsberg
175e6cec39 Pass EGL_NO_CONTEXT to eglCreateImageKHR for EGL_DRM_BUFFER_MESA target 2011-01-06 15:45:19 -05:00
Kristian Høgsberg
f6b1471fd8 Initialize surface->link so we can always wl_list_remove() it
In particular, even if we never added it to the compositor surface list.
2011-01-06 15:32:14 -05:00
Kristian Høgsberg
4e63c6313b Merge remote branch 'nobled/fixes2' 2011-01-06 14:22:59 -05:00
Kristian Høgsberg
f1ef15cb45 Move grab definitions to wayland-util.h
These tokens really are part of the protocol and we need to extend the
scanner to generate them.
2011-01-06 10:00:23 -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
Kristian Høgsberg
5753188e16 Move basic grab handling to core libraries 2011-01-05 17:34:54 -05:00
nobled
f8475c9366 Fix window.c build without cairo-gl 2011-01-05 17:41:55 +00:00
Kristian Høgsberg
0d8805ea18 Install the pkgconfig files
Lost the install rule when we converted to automake.
2011-01-01 10:55:45 -05:00
Kristian Høgsberg
cbe6f04388 Fix compositor-wayland 2010-12-17 09:54:45 -05: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
Joel Teichroeb
3a1b4815b0 Fixed a small typo 2010-12-13 10:14:19 -05:00
Kristian Høgsberg
ab1862d68a Move code around to keep input device interface and init function close 2010-12-09 11:29:40 -05:00
Kristian Høgsberg
67f367f329 Document the shell.configure event a bit 2010-12-09 11:06:46 -05:00
Kristian Høgsberg
c5c510ec75 Set up visuals in wayland-server
Still very much hand-wavey, but at least it's only in one place now.
2010-12-08 15:12:58 -05:00
Kristian Høgsberg
b3fc757cd8 Handle buttons in grab objects too 2010-12-08 11:07:57 -05:00
Kristian Høgsberg
9c3e8d734e Move grab state to struct wl_input_device 2010-12-08 09:48:52 -05:00
Kristian Høgsberg
dfce71d116 Reenable fragment shader precision specifier 2010-12-07 20:19:10 -05:00
Kristian Høgsberg
8321e693d2 Use grab object for motion grabs too
Now all grabs use grab objects, so drop the grab enum.
2010-12-07 17:25:30 -05:00
Kristian Høgsberg
57db067cec Make wlsc_input_device_update_grab() take a grab object 2010-12-07 15:08:16 -05:00
Kristian Høgsberg
287343a0d3 Use a grab object for drag and drop 2010-12-07 14:58:57 -05:00
Kristian Høgsberg
6d65d5f4d4 Handle shell.move using a grab object 2010-12-07 13:30:18 -05:00
Kristian Høgsberg
fc9c28adc0 Move resizing to a grab object 2010-12-07 13:04:43 -05:00
Kristian Høgsberg
359d667646 Add grab object infrastructure 2010-12-07 12:29:03 -05:00
Kristian Høgsberg
4be2ed9611 Drop dummy wl_grab_surface hack 2010-12-07 09:15:57 -05:00
Kristian Høgsberg
855ab75787 Remove unnecessary wlsc_compositor_schedule_repaint() call 2010-12-07 09:03:02 -05:00
Kristian Høgsberg
dff2e3c550 Reduce indentation in notify_button() 2010-12-07 09:02:09 -05:00
Kristian Høgsberg
ea08115ee3 Start grab when button is pressed, upgrade if we start drag, move or resize
Fixes crash on click in terminal.
2010-12-07 08:59:51 -05:00
Kristian Høgsberg
7132a9aeb8 Move get_time() helper back into compositor 2010-12-06 21:41:10 -05:00
Kristian Høgsberg
4685fa324f Pass timestamp in surface destroy callback 2010-12-06 21:38:50 -05:00
Kristian Høgsberg
02ef1c1aca Move focus tracking surface destroy callbacks into core 2010-12-06 21:35:19 -05:00
Kristian Høgsberg
a9e8961ea2 Use surface destroy notifier for cancelling grabs 2010-12-06 21:32:15 -05:00
Kristian Høgsberg
3d76e652c5 Use the per-surface destroy callback for grabs as well 2010-12-06 17:33:11 -05:00
Kristian Høgsberg
ab8475cafd Move get_time() helper to core
We'll need a better strategy for generating timestamps without input events
or pageflips.  At least we'll need to ensure everybody is using the same
underlying time source.
2010-12-06 16:56:28 -05:00