Commit Graph

1617 Commits

Author SHA1 Message Date
Kristian Høgsberg
53ff2f6672 window.c: Cache outputs 2011-11-26 17:27:37 -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
Benjamin Franzke
d0f79ab5ab desktop-shell: Make panel and background output dependent 2011-11-23 20:17:54 +01:00
Benjamin Franzke
8193bc1e9a desktop-shell: Unlock dialog needs to be a custom window
Since set_toplevel would overwrite set_lock_surface.
2011-11-23 19:36:28 +01:00
Benjamin Franzke
d775971e94 desktop-shell: Fix some indents 2011-11-23 17:19:38 +01:00
Kristian Høgsberg
02453dd699 cairo-util: Dont use non-standard JCS_EXT_BGRX color space
Everytime somebody has to write a channel swizzling loop,
God kills a kitten... and a dolphin and a unicorn.
2011-11-22 14:40:48 -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
980c49e6cd window: Remove unused variable 2011-11-18 15:24:23 -05:00
Kristian Høgsberg
e412ff3025 Merge remote-tracking branch 'pq/glmatrix' 2011-11-18 09:57:50 -05:00
Pekka Paalanen
3da492b8d5 wscreensaver: configure glmatrix
Since I have commented out all the config structures in glmatrix.c, it
was not getting proper default values. Hardcode some default there.

Remove glClear from reshape_matrix(), as wscreensaver does not support
rendering commands in reshape call.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-18 14:48:39 +02:00
Pekka Paalanen
11f53f56db clients: add wscreensaver
Implement all the required support code for running glmatrix.c.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-18 14:46:26 +02:00
Pekka Paalanen
8260f460d7 clients: import glmatrix.c and matrix3.xpm
Copy hacks/glx/glmatrix.c and hacks/images/matrix3.xpm from
xscreensaver-5.15 distribution package.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-18 14:45:04 +02:00
Kristian Høgsberg
a3cdf59cee simple-shm: Add a wl_shm listener
This way we properly check that WL_SHM_FORMAT_XRGB32 is available.
2011-11-17 10:27:17 -05:00
Kristian Høgsberg
1ec0c31596 compositor: Hide surfaces by setting surface->output to NULL
This way we can still use surface->link when a surface is not in
the main compositor surface list and don't need the hidden_surface
wrapper object.  Also, setting surface->output to NULL will block
the surface frame callback until we put the surface back into the
main list.  This has the effect of blocking animations while a surface
isn't visible.
2011-11-15 16:43:25 -05:00
Pekka Paalanen
bfbb26bdb2 desktop-shell: add unlock dialog
The unclock dialog is just a normal window with a green ball in it. When
you click the ball, the screen will be unlocked.

Made for testing the screen locking.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-15 16:43:25 -05:00
Pekka Paalanen
77cbc951cb window: clean up redraw and focuses on destroy
Currently, the way to destroy a window in a response to an event (e.g.
button click), is to put a task into the deferred list with
display_defer(). The task will then call window_destroy() from outside
event handling code.

As events are handled, it is possible that the deferred list contains
also the redraw task for this window. As the execution order of these
tasks is unknown (redrawing a freed window is a bug) and redrawing
something that goes away immediately is not useful, the redraw task must
be removed on window_destroy().

'struct input' contains pointers to windows currently in focus for that
input device. These pointers must also be cleared on window_destroy().
This fixes a use-after-free bug for the unlock dialog in desktop-shell
(future commit).

As an irrelevant minor cleanup, window::grab_device member is not used
anywhere, and is removed.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-15 16:43:24 -05:00
Pekka Paalanen
9ef3e012d6 desktop-shell: screen locking protocol
Add protocol and functions for supporting screen locking, triggered by
activity timeout.

After activity timeout, compositor starts the fade to black, and then
enters SLEEPING state. At that point it calls lock() in the shell
plugin.

When input events trigger a wakeup, unlock() in the shell plugin is
called. This sends prepare_lock_surface event to the desktop-shell
client. The screen stays locked while the compositor starts fade-in.

At this point, desktop-shell client usually creates a surface for the
unlocking GUI (e.g. a password prompt), and sends it with the
set_lock_surface request. The compositor supposedly shows and allows
interaction only with the given lock surface (not yet implemented).

When desktop-shell has authenticated the user, or instead of issuing
set_lock_surface, it sends the unlock request. Upon receiving the unlock
request, the shell plugin unlocks the screen.

If desktop-shell client dies, the screen is unlocked automatically.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-15 14:18:50 -05:00
Pekka Paalanen
09d65d0e64 config: fix boolean parsing
The rest of the line contains the newline, so cannot match simply 'true'
or 'false'.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-15 09:04:56 -05:00
Kristian Høgsberg
fc32c394e7 config: Don't print warning when XDG_CONFIG_HOME isn't set
According to the spec, it's ok for this not to be set and just means that
we should default to $HOME/.config.
2011-11-15 09:02:24 -05:00
Pekka Paalanen
668dd56918 window: add a helper for config file paths
Add a helper function, that constructs a path to a config file from
XDG_CONFIG_HOME environment variable, by the rules of
http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html

Make desktop-shell find its config file from XDG_CONFIG_HOME. This
allows to have a personal config file without continuously fighting with
git about wayland-desktop-shell.ini.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-15 08:57:01 -05:00
Kristian Høgsberg
ac3a59a0d1 window: Add a cheesy parser for ini-files, use it in desktop-shell 2011-11-14 22:51:02 -05:00
Kristian Høgsberg
c4693c4ab4 Install desktop-shell in $prefix/libexec 2011-11-14 14:57:17 -05:00
Pekka Paalanen
6cd281a023 desktop-shell: launch from the compositor
Fork and exec desktop-shell in the compositor. This is a way to create
an authenticated client. Later, the desktop-shell interface will be
reserved for this client only.

For exec to work, the compositor should be started from the
wayland-demos' root directory.

Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
2011-11-03 15:16:19 -04:00
Casey Dahlin
fb39963cc9 Update .gitignores 2011-10-28 13:32:17 -04:00
Kristian Høgsberg
ac5098f11a Merge remote-tracking branch 'robster/rob/pointer-fixes' 2011-10-25 09:07:12 -04:00
Rob Bradford
8bd35c7770 window: Avoid setting an invalid surface for the pointer
If we failed to load the pointer image to the surface then do not create a
buffer from a NULL surface and do not attach that to the device.
2011-10-25 12:20:51 +01:00
Rob Bradford
21223bf6d1 window: Report an error if we cannot load the pointer files 2011-10-25 12:19:36 +01:00
Eugeni Dodonov
397b908d7b Add missing include for gio.h.
This is needed by GFile, used by view.c.

Signed-off-by: Eugeni Dodonov <eugeni.dodonov@intel.com>
2011-10-24 11:58:24 -04:00
Kristian Høgsberg
bf8bd5aa3a cairo-util: Fix another last-minute typo 2011-10-20 14:44:48 -04:00
Kristian Høgsberg
27d3866045 cairo-util: Add helper to load jpeg files 2011-10-20 13:11:12 -04:00
Kristian Høgsberg
9ef9e0ecf9 simple-egl: Remove leftover wl_visual variable 2011-10-19 21:16:58 -04:00
Kristian Høgsberg
bcee9a4b25 desktop-shell: Add beginning of pop-up menu to panel 2011-10-12 00:36:16 -04:00
Benjamin Franzke
1a89f28c7d gears: Fail if compiled without cairo-egl 2011-10-07 10:06:01 +02:00
Benjamin Franzke
0c99163d9b window: Create a cairo device for each egl config 2011-10-07 10:06:01 +02:00
Benjamin Franzke
47eb8f4e91 window: Remove display_flush_cairo_device
Rather add a flush_surface utility that
flushed the cairo_device thats associated to a surface.
2011-10-07 10:05:57 +02:00
Kristian Høgsberg
e4fb78de8f Handle compositors without wl_shell 2011-09-21 17:43:32 -04:00
Kristian Høgsberg
41abb2865e view: Fix reference to wayland-glib.h 2011-09-21 08:47:55 -04:00
Kristian Høgsberg
e28d05b0ad window.c: Move window items to window.c 2011-09-20 21:43:54 -04:00
Kristian Høgsberg
3a69627f43 window: Stop using glib mainloop in toy toolkit 2011-09-19 17:28:55 -04:00
Kristian Høgsberg
1e164b9afd Move rounded_rect() to cairo-util.c 2011-09-19 17:26:44 -04:00
Kristian Høgsberg
547da5afc9 terminal: Make -f (fullscreen) option work again 2011-09-19 17:26:30 -04:00
Kristian Høgsberg
7e69000556 desktop-shell: Scale background image to output size 2011-09-08 18:18:02 -04:00
Kristian Høgsberg
f8ab46e149 window: Default to toplevel windows 2011-09-08 16:56:38 -04:00
Kristian Høgsberg
67680c122d desktop-shell: Add launcher for the Wayland terminal 2011-09-08 11:48:53 -04:00
Kristian Høgsberg
0c29eb292e clients: Add a simple desktop-shell app
This just provides the background surface and the top panel.
2011-09-06 18:02:34 -04:00
Kristian Høgsberg
900b226ac1 window: Add enter/leave handlers 2011-09-06 14:33:52 -04:00
Benjamin Franzke
4b87a13974 clients: Fix typos
And forgotten display_create conversion in view.c.
2011-09-01 10:36:53 +02:00
Benjamin Franzke
e8e0e6e2db Update gitignore 2011-08-31 16:25:32 -04:00
Benjamin Franzke
91eacca38b Remove egl display type setenv hack
No longer needed with mesa 7.12-devel egl display autodetection.
2011-08-31 16:25:18 -04:00
Kristian Høgsberg
f389cacc20 Move away from visuals and just use EGLConfigs or shm format tokens 2011-08-31 16:21:38 -04:00
Kristian Høgsberg
6da3812f0a gears: Don't schedule redraw, just draw from frame callback 2011-08-29 17:12:37 -04:00
Kristian Høgsberg
2821aaaf9c simple-shm: Fix inverted logic 2011-08-29 17:12:37 -04:00
Kristian Høgsberg
2415990461 clients: Remove a few unused variables 2011-08-29 17:12:36 -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
a8d1fa762e clients: Bring clients up to date 2011-08-29 17:12:36 -04:00
Kristian Høgsberg
f790c79ec7 Use wl_display_bind() for binding to globals 2011-08-29 17:12:36 -04:00
Kristian Høgsberg
334182062f Use the new wl_callback interface 2011-08-29 17:12:36 -04:00
Kristian Høgsberg
8417d432f5 screenshot: A couple of minor tweaks 2011-07-27 05:58:57 -07:00
Tiago Vignatti
4d0d2037ea screenshot: use gdk-pixbuf for writing png images
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-07-26 08:23:37 -07:00
Kristian Høgsberg
2669f72e95 clients: Rename simple-client to simple-egl 2011-07-21 08:42:58 -07:00
Tiago Vignatti
93165e3e23 configure: set up simple clients independently from the others
Namely, simple-client and simple-shm.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-07-21 08:42:58 -07:00
Tiago Vignatti
e81fe8346c clients: simple-shm: remove unused libraries and headers
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-07-21 08:42:58 -07:00
Tiago Vignatti
79caa757c9 simple-shm: assert display conection
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2011-07-21 08:42:58 -07:00
Benjamin Franzke
22d5481f91 window.c: Fix compile/run using cairo without egl 2011-07-15 17:56:04 +00:00
Kristian Høgsberg
97ba2e6015 clients: Add a simple shared memory client 2011-07-06 11:58:45 -04:00
Benjamin Franzke
14f7ff91ad window: Set egl_window_resize late and once
Previously we resized in attach_surface and create_surface.
THe second resize overwrote dx or dy from the first.
2011-06-23 12:10:51 +02:00
Kristian Høgsberg
54b8683784 terminal: Don't set terminal size before we have the pty 2011-06-21 16:31:11 -04:00
Kristian Høgsberg
2468692c9f Merge remote-tracking branch 'bnf/fixes-2' 2011-06-21 11:31:38 -04:00
Kristian Høgsberg
8f0ce05f52 compositor: Send out more detailed output events 2011-06-21 11:16:58 -04:00
Benjamin Franzke
282019a7df simple-client: Trigger first drawing by hand 2011-06-21 09:53:15 +02:00
Kristian Høgsberg
7a5c979f4c Move map requests to shell 2011-06-20 10:45:24 -04:00
Benjamin Franzke
65e5051bc7 clients: Add an optional roundtrip for visual lookup 2011-05-31 15:05:32 +02:00
Kristian Høgsberg
b3bef626ce view: Set opaque when going fullscreen 2011-05-16 14:46:47 -04:00
Kristian Høgsberg
3be87d1931 window: Add support for opaque windows 2011-05-16 14:46:41 -04:00
Kristian Høgsberg
8357cd61d8 window.c: Deal with visual changes 2011-05-16 10:43:32 -04:00
Kristian Høgsberg
393d47aa6f view: Add fullscreen option 2011-05-16 10:43:32 -04:00
Kristian Høgsberg
12283cc9a2 view: Set resize handler so fullscreen doesn't crash 2011-05-16 10:43:32 -04:00
Kristian Høgsberg
ded9ff337b simple-client: setenv the EGL platform for simple client as well 2011-05-16 10:42:07 -04:00
Egbert Eich
e7b8d9055e compositor: Set EGL_PLATFORM env variable for each backend.
I may have missed something, but - since the Wayland compositor
already picks a platform backend, opens a connection and initializes the
backend specific display data structure it doesn't make sense
to let egl pick a platform. If it picks a different one the
display specific data structure will most likely not match.
Thus determine the platform in the Wayland rendering backend by setting
the EGL_PLATFORM env variable.
For the client any other platform than 'wayland' doesn't seem to make
sense.
I'm not sure if I've got the the platform ofr openfwd right.

Signed-off-by: Egbert Eich <eich@freedesktop.org>
2011-05-10 16:42:08 -04:00
Kristian Høgsberg
8544903741 compositor: Screenhoot into a client provided shm buffer
This moves the png writing part to the client and removes the gdk-pixbuf
dependency from the compositor.
2011-05-02 12:13:14 -04:00
Casey Dahlin
48d49eb5f9 Add some new things to .gitignore
libtoytoolkit.a, and generated protocol headers for meego-tablet.
2011-04-29 10:30:13 -04:00
Kristian Høgsberg
80492e220a configure: Only check dependencies for the enabled compositor backends 2011-04-26 11:10:32 -04:00
Benjamin Franzke
bde55ec8e4 Implement buffer.damage in shm, use it in window.c 2011-04-22 11:53:45 -04:00
Kristian Høgsberg
7cbdb64ab6 Fix clients to work with wl_ prefixed interface names 2011-04-20 18:53:37 -04:00
Kristian Høgsberg
cf57dc52ff Update to work with scanner that doesn't hardcode wl_*
This lets us drop the wl_ prefix for the un-officual screenshooter protocol.
2011-04-20 14:20:02 -04:00
Kristian Høgsberg
91342c6081 Switch to new subscribe protocol and wayland-egl 2011-04-20 14:20:02 -04:00
Kristian Høgsberg
d11eadb519 window.c: Check for cairo device failure the right way 2011-04-14 11:54:59 -04:00
Kristian Høgsberg
01aed1c665 Remove double definition of window_get_wl_surface() 2011-04-11 16:59:05 -04:00
Kristian Høgsberg
11e2828bdc Merge remote-tracking branch 'bnf/surface-frame-event'
Conflicts:
	compositor/compositor.c
2011-04-11 16:47:50 -04:00
Kristian Høgsberg
12b0bb343b Fix window_set_child_size() for windows without decoration 2011-04-11 13:18:31 -04:00
Kristian Høgsberg
386857ba6a Add struct window accessor for the wl_surface 2011-04-11 13:17:44 -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
8d85e886fc Merge remote-tracking branch 'bnf/fixes' 2011-03-18 00:15:25 -04:00
Benjamin Franzke
cff904e69d gears: Use wayland egl surface instead of images 2011-03-17 15:55:25 +01:00
Benjamin Franzke
6693ac2108 window: Use window surfaces for windows 2011-03-17 15:55:18 +01:00
Benjamin Franzke
2eae9e3f1c simple-client: Request a alpha channel in choose config 2011-03-17 15:43:21 +01:00
Benjamin Franzke
ec4d342aa9 Support per surface frame events
This fixes tearing with multi head.
2011-03-17 11:54:35 +01:00
Kristian Høgsberg
b2d71852fd Split into a demo repository that holds the demo compositor and clients 2011-02-14 22:13:33 -05:00
Tim Wiederhake
9c7a8cc663 fix typo in window.c 2011-02-11 13:44:31 -05:00
Kristian Høgsberg
0d5007a76f window.c: Use eglGetProcAddress to look up extension functions 2011-02-09 10:57:44 -05:00
Kristian Høgsberg
297d6dd442 window.c: Include wayland-egl.h before EGL headers so we get the right platform 2011-02-09 10:51:15 -05:00
Kristian Høgsberg
3eff366911 Add struct wl_egl_display argument to wl_egl_window_create
We don't need it in the mesa implementation, but other implementations
might and it's symmetric with wl_egl_pixmap_create().
2011-02-07 20:48:01 -05:00
Kristian Høgsberg
bfb8e61381 Follow wayland-egl renames 2011-02-07 10:30:38 -05:00
Kristian Høgsberg
a495a5ed8b simple-client: Port to wayland-egl and use eglSwapBuffers()
simple-client is simpler.
2011-02-07 09:12:56 -05:00
Kristian Høgsberg
f57a96f98d gears: Remove unused drm_fd field 2011-02-07 09:12:56 -05:00
Kristian Høgsberg
297c6313eb Port window.c to use wayland-egl 2011-02-07 09:12:56 -05:00
nobled
7b87cb04a9 window: add null checks
Also check for invalid parameters early on, so if we crash,
we know *why* we crashed.
2011-02-01 18:51:47 +00:00
nobled
14d222f612 add newlines in error messages 2011-02-01 18:48:46 +00:00
Kristian Høgsberg
0ce245761c Add initial basic support for fullscreen surfaces 2011-01-28 15:18:33 -05:00
Kristian Høgsberg
3ba4858c4b compositor-x11: Handle keyboard focus correctly so we avoid stuck modifiers 2011-01-27 11:57:19 -05:00
Tim Wiederhake
80bf6f78e4 clients/view: Fix memory leak 2011-01-25 16:33:34 -05:00
Tim Wiederhake
6685aceae3 clients/view: Don't try to show inexistant files 2011-01-25 16:33:25 -05:00
Tim Wiederhake
9aad08e91b clients/view: Allow relative paths 2011-01-25 16:33:00 -05:00
Tim Wiederhake
655467a5d2 clients/view: Add mousewheel and arrow keys 2011-01-25 16:32:37 -05:00
Tim Wiederhake
7e182ef13b clients/view: Remove unnecessary variables 2011-01-25 16:29:51 -05:00
Tim Wiederhake
1afc9a98fa clients/view: Do not browse outside document range 2011-01-25 16:29:27 -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
Darxus@chaosreigns.com
c4df99cb2c Replace gdk_pixbuf_unref with g_object_unref
Because gdk_pixbuf_unref is deprecated and for compatability with
gdk-pixbuf 2.21.4.
2011-01-25 15:05:08 -05:00
Kristian Høgsberg
d5fb9cc769 window.c: Make title not const
We now strdup it.
2011-01-25 12:45:37 -05:00
Kristian Høgsberg
734a7501b6 Remove frame handler prototype
I messed up the merge.
2011-01-25 12:44:19 -05:00
Kristian Høgsberg
6ec41abf72 Merge remote branch 'callum/master'
Conflicts:
	clients/window.h
2011-01-25 10:40:01 -05:00
nobled
7d9517855a fix includes 2011-01-24 16:01:26 +00:00
Tim Wiederhake
81bd979835 initialise display
fixes valgrind:
==25178== Conditional jump or move depends on uninitialised value(s)
==25178==    at 0x409E2C: display_create (window.c:1582)
==25178==    by 0x407A43: main (terminal.c:2323)
and
==13793== Conditional jump or move depends on uninitialised value(s)
==13793==    at 0x40A2D1: display_handle_global (window.c:1504)
==13793==    by 0x4E2C183: display_handle_global (wayland-client.c:281)
==13793==    by 0x713FEE7: ffi_call_unix64 (in /usr/lib/libffi.so.5.0.10)
==13793==    by 0x713FC83: ffi_call (in /usr/lib/libffi.so.5.0.10)
==13793==    by 0x4E2C71A: wl_closure_invoke (connection.c:663)
==13793==    by 0x4E2BB7B: wl_display_iterate (wayland-client.c:484)
==13793==    by 0x4096CA: display_create (window.c:1664)
==13793==    by 0x407A43: main (terminal.c:2321)
2011-01-23 17:58:30 -05:00
Tim Wiederhake
748f672b2c free option context 2011-01-23 17:58:22 -05:00
Tim Wiederhake
eae5569558 remove unused variable 2011-01-23 17:58:18 -05:00
Tim Wiederhake
503ccca5c8 document the usage of libtoytoolkit
(krh: edited to follow window_create() API changes)
2011-01-23 14:04:35 -05:00
Tim Wiederhake
f71accc5b8 close terminal window on exit 2011-01-23 14:00:21 -05:00
Tim Wiederhake
b6761dc294 fix resizing at top/left border 2011-01-23 13:59:30 -05:00
Tim Wiederhake
dc3f817538 remove declaration without definition from window.h 2011-01-23 13:58:43 -05:00
Tim Wiederhake
b0ae49e315 remove unused function in clients/smoke.c, silence warning 2011-01-23 13:58:26 -05:00
Tim Wiederhake
8a6f7e3139 compositor crashes if window width or height is <= 0 2011-01-23 13:58:18 -05:00
Tim Wiederhake
762e5c25d6 add clients to .gitignore 2011-01-23 13:58:07 -05:00
Kristian Høgsberg
0cd8f6eded Drive-by optimization of blur_surface() 2011-01-21 22:19:40 -05:00
Kristian Høgsberg
a495333d4f Remove unused bits of cairo code 2011-01-21 22:17:03 -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
e164e4ef72 Use cairo_push_group() for all double buffering, drop window_copy_*() 2011-01-21 11:35:05 -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
Kristian Høgsberg
943741cb40 Use the global handler in dnd instead of custom drag_offer hook 2011-01-19 14:25:12 -05:00
Kristian Høgsberg
b46df05fa8 window: Add a catch-all global handler hook 2011-01-19 14:25:12 -05:00
Benjamin Franzke
25f0ba4be1 clients/Makefile: Add AM_CPPFLAGS to view's CPPFLAGS 2011-01-16 21:09:51 -05:00
Kristian Høgsberg
ad67af1bcc simple-client: Remove unnecessary flush 2011-01-14 20:45:23 -05:00
Kristian Høgsberg
1a11fac8fa simple-client: Create GLES2 context 2011-01-14 20:39:21 -05:00
Kristian Høgsberg
a1015b9e8c Link simple-client against libGLESv2.so, not full GL 2011-01-14 20:38:35 -05:00
Kristian Høgsberg
be63ae5a2c Merge remote branch 'bnf/simple_client' 2011-01-14 19:13:22 -05:00
Benjamin Franzke
aabdce027f Add a simple client 2011-01-15 00:44:03 +01:00
Kristian Høgsberg
8def264241 Check for cairo-egl instead of just cairo-gl 2011-01-14 17:42:50 -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
08c40c3550 clients: Make poppler-glib optional
Just don't compile the view client.
2011-01-11 13:48:03 -05: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
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