Commit Graph

507 Commits

Author SHA1 Message Date
Benjamin Franzke
22d5481f91 window.c: Fix compile/run using cairo without egl 2011-07-15 17:56:04 +00: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
8f0ce05f52 compositor: Send out more detailed output events 2011-06-21 11:16:58 -04: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
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
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
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
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
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
ec4d342aa9 Support per surface frame events
This fixes tearing with multi head.
2011-03-17 11:54:35 +01: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
bfb8e61381 Follow wayland-egl renames 2011-02-07 10:30:38 -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
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
6ec41abf72 Merge remote branch 'callum/master'
Conflicts:
	clients/window.h
2011-01-25 10:40:01 -05: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
b6761dc294 fix resizing at top/left border 2011-01-23 13:59:30 -05:00
Tim Wiederhake
8a6f7e3139 compositor crashes if window width or height is <= 0 2011-01-23 13:58:18 -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
e164e4ef72 Use cairo_push_group() for all double buffering, drop window_copy_*() 2011-01-21 11:35:05 -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
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
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
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
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
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
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
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
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
Kristian Høgsberg
2b43bd73a0 Bring gears example up to date
Must have gears.
2010-11-08 15:46:02 -05: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
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
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
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
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
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
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
b91cd10fcb Move cairo-util.[ch] to clients/ 2010-08-16 16:23:12 -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
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
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