Commit Graph

192 Commits

Author SHA1 Message Date
Daniel Stone c9785eacca Use enum wl_keyboard_key_state instead of integer
Instead of using a uint32_t for state everywhere (except on the wire,
where that's still the call signature), use the new
wl_keyboard_key_state enum, and explicit comparisons.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-31 15:43:03 -04:00
Daniel Stone 4dbadb1556 Use enum wl_pointer_button_state instead of integer
Instead of using a uint32_t for state everywhere (except on the wire,
where that's still the call signature), use the new
wl_pointer_button_state enum, and explicit comparisons.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-31 15:42:47 -04:00
Scott Moreau 7a1b32a198 Implement text cursor position protocol.
Here we create a new client/compositor interface in weston to allow
clients to report their x/y cursor position to the compositor. These
values are then used to center the zoom area on this point. This
is useful for everyone, especially people who are visually impaired.
2012-05-31 13:10:22 -04:00
David Herrmann a6128d6183 terminal: add glyphs to character list
This adds the actual glyphs/utf-8 characters to the comments of CS_SPECIAL
(DEC special graphics set). They all work on my system with "Monospace" or
"Bitstream" font. But keep the mnemonics so if the UTF8 characters are not
displayed correctly, the comments are still readable.

I don't know if gcc actually reads data as UTF-8 or if C code actually
allows all UTF8 characters. However, unless it reads as "*/" in ASCII, it
shouldn't matter inside of comments.

Anyway, it compiles fine with gcc-4.7.0/amd64 here.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-05-29 09:56:27 -04:00
David Herrmann 516b9e1753 terminal: fix up horizontal scan-line characters
The DEC special graphics set defines entries 0x6f to 0x73 to be:
  Horizontal Scan Line 1
  Horizontal Scan Line 3
  Horizontal Scan Line 5
  Horizontal Scan Line 7
  Horizontal Scan Line 9
However, the first Unicode drafts included only Scan-Line 5. Since
Unicode-3.2 the other Scan-Lines were added and are available in most
Unicode fonts now.

The codes are listed here:
  http://www.fileformat.info/info/unicode/block/miscellaneous_technical/images.htm?start=9089
Or more precisely:
  Scan 1: http://www.fileformat.info/info/unicode/char/23ba/index.htm
  Scan 3: http://www.fileformat.info/info/unicode/char/23bb/index.htm
  Scan 7: http://www.fileformat.info/info/unicode/char/23bc/index.htm
  Scan 9: http://www.fileformat.info/info/unicode/char/23bd/index.htm
Scan 5 is kept the same as before as it wasn't added separately and was
already correct before.

Signed-off-by: David Herrmann <dh.herrmann@googlemail.com>
2012-05-29 09:54:50 -04:00
Ander Conselvan de Oliveira dc8c8fce72 window: rename enum pointer_type to cursor_type
This avoids confusion with the pointer devices (struct wl_pointer).
2012-05-25 23:28:54 -04:00
Ander Conselvan de Oliveira d8f527c845 window: track changes in libwayland-cursor api
libwayland-cursor does not provide enum wl_cursor_type anymore so this
brings back enum pointer_type.

This partially revers commit 1042dc15e0.
2012-05-25 23:09:06 -04:00
Ander Conselvan de Oliveira 1042dc15e0 window: use libwayland-cursor instead of libXcursor 2012-05-22 10:17:34 -04:00
Kristian Høgsberg 4c3dac9c66 clients: Remove superfluous #includes
In particular window.c and many clients were including glib.h without
using it and without the right cflags.
2012-05-11 16:40:22 -04:00
Kristian Høgsberg bef52d1423 Update to new libxkbcommon API
We no longer depend on xproto, we use xkbcommon keycodes now. Yay!
2012-05-11 11:24:35 -04:00
Kristian Høgsberg 80680c7b75 window.c: Just use float instead of GLfloat, remove GLES2.h include 2012-05-10 14:11:44 -04:00
Kristian Høgsberg 7016313778 Port Wayland clients to new xkbcommon API
A little different from Daniels initial patch.  We look up the common
modifiers at xkb init time and convert the xkb serialized modifier mask
to our own modifier bitmask.
2012-05-08 15:55:39 -04:00
Daniel Stone b230a7ee58 Convert internal input co-ordinates to GLfloat
Change all client motion handlers to take GLfloat for co-ordinates,
rather than int32_t.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-08 14:40:57 -04:00
Daniel Stone 5d66371743 Change button from int to uint32_t
Since you can't really have a negative button number.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-07 12:57:11 -04:00
Daniel Stone da5b93c8d7 Change key/button grab bindings to take unsigned state
'state' here meaning 'is it up or down?', obviously.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-07 12:54:14 -04:00
Kristian Høgsberg 875ab9e735 Add signedness warning flag and fix fallout 2012-03-30 11:52:39 -04:00
Kristian Høgsberg bcacef19b0 Add an option parser
On one hand, getopt (in particular the -o suboption syntax) sucks on the
server side, and on the client side we would like to avoid the glib
dependency.  We can roll out own option parser and solve both problems
and save a few lines of code total.
2012-03-12 01:28:50 -04:00
Kristian Høgsberg 9dd1ed24db terminal: Don't queue a resize after setting fullscreen
We end up doing an attach at the non-fullscreen size before resizing to
fullscreen, causing the terminal to jump to the center for a frame before we
render the fullscreen image.
2012-02-28 09:23:23 -05:00
Kristian Høgsberg 010f98b083 window: Track and report input and opaque regions
We just set the input region to the bounding box of the window frame
and set the opaque region to be the opaque rectangle inside the window
if the child widget is opaque.
2012-02-23 17:30:54 -05:00
Peter Hutterer 035ac94c17 terminal: run $SHELL if set
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
2012-02-07 16:26:11 -05:00
Kristian Høgsberg 009ac0a965 window: Dont take width and height in window constructor
Always set this by scheduling an initial resize.
2012-01-31 15:24:48 -05:00
Kristian Høgsberg 29af3ebce6 window: Make decorations just a widget
Woohoo, only took 25 commits of refactoring to get to this point.
2012-01-10 22:41:55 -05:00
Kristian Høgsberg bb97700474 window: Get rid of the window child allocation concept 2012-01-10 19:11:42 -05:00
Kristian Høgsberg b67e94b170 window: Make resize and redraw handlers widget vfuncs 2012-01-10 14:22:10 -05:00
Kristian Høgsberg 5d12990dbe window: Allocate and flush the window surface in window.c
No need to push this to the toolkit users.
2012-01-10 12:25:32 -05:00
Kristian Høgsberg 75bc667a70 window: Drop the window widget
It was just a temporary convenience for moving things over.
2012-01-10 10:45:52 -05:00
Kristian Høgsberg a8a0db3497 window: Move button handler to widget 2012-01-09 11:12:05 -05:00
Kristian Høgsberg 87a57bbd73 window: Create a widget for the window, drop window motion handler 2012-01-09 10:34:35 -05:00
Kristian Høgsberg 5f190ef96a window: Convert a few clients to use widget motion handler 2012-01-09 09:44:45 -05:00
Kristian Høgsberg 727bacdddf terminal: Don't close fd twice 2011-12-28 22:04:27 -05:00
Kristian Høgsberg e7aaec301a x11: Bridge X11 CLIPBOARD selection to Wayland clients 2011-12-27 13:50:04 -05:00
Kristian Høgsberg 47fe08aad5 Implement the new dnd/selection protocol
The new protocol splits dnd/selection from wl_shell and allows us to move
the implementation out of shell.c.
2011-11-23 16:20:28 -05:00
Kristian Høgsberg c5241f5b73 Never include wayland-util.h directly
And fix a missing "" to <> conversion for wayland-client.h include.
2011-11-22 09:35:14 -05:00
Pekka Paalanen 50719bce2a Fix inconsistent #include style
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-22 09:27:03 -05:00
Kristian Høgsberg 3a69627f43 window: Stop using glib mainloop in toy toolkit 2011-09-19 17:28:55 -04:00
Kristian Høgsberg 547da5afc9 terminal: Make -f (fullscreen) option work again 2011-09-19 17:26:30 -04:00
Kristian Høgsberg 26130866c6 terminal: Fix unused return value warnings 2011-08-29 17:12:36 -04:00
Kristian Høgsberg 9de79a92a6 window.c: Drop global handler argument
We can just register a global handler directly on the wl_display now.
2011-08-29 17:12:36 -04:00
Kristian Høgsberg 54b8683784 terminal: Don't set terminal size before we have the pty 2011-06-21 16:31:11 -04:00
Tim Wiederhake b4b67344f0 Define global handler on display creation
Otherwise the initial announcement of interfaces gets lost.
2011-04-11 13:16:33 -04:00
Kristian Høgsberg 0ce245761c Add initial basic support for fullscreen surfaces 2011-01-28 15:18:33 -05:00
Kristian Høgsberg 00439617f3 Fix new gcc 4.6 warnings
simple-client.c:156:10: warning: variable ‘ar’ set but not used [-Wunused-but-set-variable]

etc.
2011-01-25 15:16:01 -05:00
Kristian Høgsberg 6ec41abf72 Merge remote branch 'callum/master'
Conflicts:
	clients/window.h
2011-01-25 10:40:01 -05:00
Tim Wiederhake f71accc5b8 close terminal window on exit 2011-01-23 14:00:21 -05:00
Kristian Høgsberg 248c1b61ce Add an orange pop-up menu to test the new map_transient request 2011-01-21 18:03:15 -05:00
Callum Lowcay 6eeeb30021 Merge branch 'master' of git://anongit.freedesktop.org/wayland
Conflicts:
	clients/window.h
2011-01-22 12:00:48 +13:00
Kristian Høgsberg 6bccebee23 terminal: Just send the pty master fd to receive the selection.
LOL!!1
2011-01-21 16:26:28 -05:00
Kristian Høgsberg 31cce0533f Actually send selected text when pasting 2011-01-21 15:18:55 -05:00
Kristian Høgsberg f39a9ccbb3 Use cairo_push_group() for double buffering in the terminal
Slightly different version of the patch from twied.
2011-01-20 12:37:41 -05:00
Kristian Høgsberg 5982658d62 Render selection 2011-01-20 11:56:57 -05:00
Kristian Høgsberg 23c03ad981 Use libxkbcommon #defines for modifiers 2011-01-19 14:41:20 -05:00
Kristian Høgsberg 58eec36f68 Add proof-of-concept selection support to terminal
Next will be to support mouse selections so we can copy and paste
something more interesting than just 'selection data'.
2011-01-19 14:27:42 -05:00
Kristian Høgsberg 67cac8a565 Pass input device and time in key_handler callback
Move the modifiers to a input device getter function.
2011-01-19 14:25:13 -05:00
Callum Lowcay ef57a9b788 terminal: Window operations
Implement OSC 1 (set window title), and some basic CSI t window
operations.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-14 20:51:58 +13:00
Callum Lowcay 9d708b07e4 terminal: Fix bugs in attribute rendering
Fixed ignoring of concealed attribute, incorrect underline colour, and
glyph_run_flush not resetting the attribute.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-13 20:30:43 +13:00
Callum Lowcay 9acdb50084 Merge branch 'master' of git://anongit.freedesktop.org/wayland
Conflicts:
	clients/terminal.c
2011-01-12 19:40:14 +13:00
Callum Lowcay 67a201da6f terminal: Escape sequences with string parameters
Adjust escape parsing code to handle OSC, DSC, and other escape
sequences with string parameters.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-12 19:23:41 +13:00
Kristian Høgsberg 1d3e93922d Batch up drawing glyphs 2011-01-11 11:06:49 -05:00
Kristian Høgsberg 7ae6b1a27d Hold on to the scaled fonts we use 2011-01-11 10:38:51 -05:00
Kristian Høgsberg 4f50670769 Use cairo_show_glyphs for rendering text
A small step for now.
2011-01-11 10:33:53 -05:00
Kristian Høgsberg 01994a5964 Factor out decoding of character attributes 2011-01-11 10:26:04 -05:00
Kristian Høgsberg fb266a3207 Only draw background if it's different from what's already there 2011-01-11 10:15:21 -05:00
Kristian Høgsberg 71eca89356 Make border color a color from the color table 2011-01-11 10:13:00 -05:00
Kristian Høgsberg f106fd5b67 Add helper to set color from color table 2011-01-11 10:11:39 -05:00
Kristian Høgsberg 8c25420a50 Split background and foreground painting into separate loops 2011-01-11 10:09:32 -05:00
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
Callum Lowcay 1b091dd411 Merge branch 'master' of git://anongit.freedesktop.org/wayland 2011-01-11 09:08:59 +13: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 81179db42c terminal: More character attributes
Implement the concealed attribute, and 16-colour attributes.  Fix a bug in
256-colour attributes that prevented them from working in elinks.

Signed-off-by: Callum Lowcay <callum@callumscode.com>
2011-01-10 12:14:01 +13: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