Commit Graph

25 Commits

Author SHA1 Message Date
Kristian Høgsberg da846ca91d Fix terminal resizing
Get snapping to character grid working again, avoid crashes when attempting
to resize below 1x1 character cell, only redraw when size actually changes.

Also, rename window_get_child_rectangle() to window_get_child_allocation().
2011-01-11 10:00:52 -05:00
Tiago Vignatti 5fd89d255b terminal: fix crashing when terminal size is < 0
Just skip drawing when width or height is less than zero.

Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com>
2011-01-10 14:16:42 -05:00
Callum Lowcay 86653ed273 terminal: Various fixes
Fix several bugs in the previous patches.  Fix inverse inverse video
with bold attribute, incorrect duplication of attributes when scrolling
up, underline aliasing, bottom scroll margin adjustment when resizing,
and unnecessary sleep when sending terminal reports.  Change TERM
environment variable to xterm-256color to better reflect terminal
capabilities (although it still doesn't emulate all of xterm).

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-08 20:35:25 -05:00
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 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
Yuval Fledel e9f5e36730 Make clients exit orderly when there is no connection 2010-11-22 15:19:43 -05: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 43788b13df Update keyboard focus handler signatures 2010-07-28 23:51:05 -04:00
Kristian Høgsberg f252d6a98e Update to use eglGetDRMDisplayMESA() 2010-07-08 20:15:10 -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 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 b2a432ef18 Move clients to subdirectory 2010-06-04 21:46:55 -04:00