Commit Graph

1975 Commits

Author SHA1 Message Date
Scott Moreau
9fb9824c17 compositor: Address blending for XRGB surfaces with alpha < 1.0. 2012-05-22 13:06:51 -04:00
Kristian Høgsberg
9b68af0608 shell: Add back mod+pageup/down keybindings for zoom
This way we can use zoom without a scrollwheel/touchpad.
2012-05-22 12:58:47 -04:00
Scott Moreau
850ca42b9b Restructure output zoom.
A quick clean-up of zoom to prepare for the other patches in this series.
2012-05-22 12:58:47 -04:00
Scott Moreau
85ecac0a4e xwm: Fold weston_wm_activate into weston_wm_window_activate 2012-05-22 12:58:41 -04:00
Scott Moreau
1b3984c3cc xwayland/window-manager.c: Use container_of to get the wm pointer since window may be NULL. 2012-05-22 11:34:34 -04:00
Scott Moreau
02709afb51 shell: Update relevant bits to work with recent alpha value changes. 2012-05-22 11:33:36 -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
eaee784160 xwm: Use SUBSTRUCTURE_REDIRECT on frame window too
This lets us intercept and handle client attempts to resize their window
within the frame window.
2012-05-22 10:12:22 -04:00
Kristian Høgsberg
380deee3c7 xwayland: Add window-manager.c
Used mv instead of git mv to rename file...
2012-05-21 17:12:41 -04:00
Kristian Høgsberg
4714558e3d xwayland: Rename xserver-launcher.c to window-manager.c
It's what it is now.
2012-05-21 17:05:21 -04:00
Kristian Høgsberg
e10b124ef5 xwayland: Move socket and launcher code to it's own file 2012-05-21 17:03:17 -04:00
Kristian Høgsberg
102bf0335d xwayland: Split selection code into its own file 2012-05-21 17:03:17 -04:00
Kristian Høgsberg
a921901369 Move xwayland integration into xwayland subdirectory 2012-05-21 17:03:16 -04:00
Kristian Høgsberg
9540ea61a0 shell: Fix broken indentation in shell_get_shell_surface() 2012-05-21 17:03:16 -04:00
Kristian Høgsberg
45ba869ff3 shell: Make create_shell_surface() just return the shsurf 2012-05-21 17:03:16 -04:00
Kristian Høgsberg
e829a87a88 xwm: Add ewmh window type atoms 2012-05-21 17:03:16 -04:00
Kristian Høgsberg
2459fd6563 xwm: Don't leak render format reply
Spotted by psychon on irc.
2012-05-21 17:03:16 -04:00
Kristian Høgsberg
a416fa15d5 xwm: Switch alpha, brightness and saturation to GLfloat 2012-05-21 17:03:06 -04:00
Rob Bradford
579f2934de shell: Remove fading animation from animation list when surface destroyed
Fixes crash with a backtrace like this:

==2418== Invalid read of size 8
==2418==    at 0x8AC5B70: unresponsive_fade_frame (shell.c:374)
==2418==    by 0x409FE0: weston_output_finish_frame (compositor.c:1060)
==2418==    by 0x567043B: wl_event_loop_dispatch (event-loop.c:389)
==2418==    by 0x566E84C: wl_display_run (wayland-server.c:1003)
==2418==    by 0x4055EB: main (compositor.c:2937)
==2418==  Address 0x8aba650 is 80 bytes inside a block of size 656 free'd
==2418==    at 0x4A0662E: free (vg_replace_malloc.c:366)
==2418==    by 0x566D93B: wl_resource_destroy (wayland-server.c:408)
==2418==    by 0x566D30E: destroy_resource (wayland-server.h:166)
==2418==    by 0x566D93B: wl_resource_destroy (wayland-server.c:408)
==2418==    by 0x34ECE05D63: ffi_call_unix64 (unix64.S:75)
==2418==    by 0x34ECE05784: ffi_call (ffi64.c:486)
==2418==    by 0x5671AAE: wl_closure_invoke (connection.c:770)
==2418==    by 0x566DBAA: wl_client_connection_data (wayland-server.c:255)
==2418==    by 0x5670497: wl_event_loop_dispatch (event-loop.c:410)
==2418==    by 0x566E84C: wl_display_run (wayland-server.c:1003)
==2418==    by 0x4055EB: main (compositor.c:2937)a

and

==2418== Invalid read of size 8
==2418==    at 0x34F1E180E1: pixman_region32_union (pixman-region.c:1405)
==2418==    by 0x407F66: weston_surface_damage (compositor.c:551)
==2418==    by 0x409FE0: weston_output_finish_frame (compositor.c:1060)
==2418==    by 0x567043B: wl_event_loop_dispatch (event-loop.c:389)
==2418==    by 0x566E84C: wl_display_run (wayland-server.c:1003)
==2418==    by 0x4055EB: main (compositor.c:2937)
==2418==  Address 0x851dfe8 is 136 bytes inside a block of size 680 free'd
==2418==    at 0x4A0662E: free (vg_replace_malloc.c:366)
==2418==    by 0x566D93B: wl_resource_destroy (wayland-server.c:408)
==2418==    by 0x34ECE05D63: ffi_call_unix64 (unix64.S:75)
==2418==    by 0x34ECE05784: ffi_call (ffi64.c:486)
==2418==    by 0x5671AAE: wl_closure_invoke (connection.c:770)
==2418==    by 0x566DBAA: wl_client_connection_data (wayland-server.c:255)
==2418==    by 0x5670497: wl_event_loop_dispatch (event-loop.c:410)
==2418==    by 0x566E84C: wl_display_run (wayland-server.c:1003)
==2418==    by 0x4055EB: main (compositor.c:2937)
2012-05-21 13:59:00 -04:00
Kristian Høgsberg
168288b177 xwm: Account for shadow and frame size when positioning transient windows 2012-05-21 13:55:19 -04:00
Kristian Høgsberg
b4ad4cbdb2 xwm: Improve debug logging a bit 2012-05-21 13:55:01 -04:00
Tiago Vignatti
1ad4c42a52 xserver: map transient windows into shell surface
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-21 12:50:56 -04:00
Tiago Vignatti
dec76580c4 window: send transient flags over the wire
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-21 12:30:50 -04:00
Kristian Høgsberg
de7d66f36b xwm: Dont queue repaints unless we have a frame window 2012-05-21 12:15:50 -04:00
Kristian Høgsberg
21a68913b9 xwm: Keep cairo surface around and just resize it 2012-05-21 12:03:31 -04:00
Kristian Høgsberg
5ea11b69a2 xwm: Look up render format up front 2012-05-21 11:58:52 -04:00
Tiago Vignatti
491bac19c7 shell: Expose set_transient in shell interface 2012-05-18 16:37:43 -04:00
Tiago Vignatti
5cbb9c8a6b xserver: don't activate window always when mapping
set_window_id is the one responsible for mapping the window and the shell will
decide whether a surface needs to be activated or not. But not always at
MapNotify. That was causing ugly behavior on non-toplevel windows.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-18 16:15:47 -04:00
Kristian Høgsberg
fabcf8fb86 xwm: Set border width to zero in handle_map_request 2012-05-18 15:58:30 -04:00
Kristian Høgsberg
da86af7a15 xwm: Handle _NET_WM_MOVERESIZE_MOVE client message 2012-05-18 14:31:30 -04:00
Kristian Høgsberg
3701f6807f xwm: Move window on frame button click 2012-05-18 13:47:43 -04:00
Kristian Høgsberg
938b8fa3c2 shell: Expose surface move functionality in shell interface 2012-05-18 13:47:15 -04:00
Kristian Høgsberg
00c57749b1 xwm: Fall back to WM_NAME if we don't have _NET_WM_NAME 2012-05-18 12:18:01 -04:00
Kristian Høgsberg
b4e4c0af5a xwm: Initialize window->properties_dirty 2012-05-18 12:14:16 -04:00
Kristian Høgsberg
4b98b6f09e xwm: Read motif wm hints
For now, just support the "no decorations" combination.
2012-05-18 12:12:36 -04:00
Rob Bradford
8667e77b77 compositor: Silence compiler warning by initializing resource to NULL
Although resource will be valid when it is used since the entered and left
masks are subsets of the different mask it would be nice not to have a
spurious compiler warning.
2012-05-18 09:49:31 -04:00
Kristian Høgsberg
693d832a3d xserver: Set input region for xwm surfaces 2012-05-17 15:45:31 -04:00
Jonas Ådahl
1df17af2c0 evdev: Improve touchpad support and add motion filters
Touchpad related code has been rewritten and moved to its own file
accessed by evdev via the dispatch interface.

The various functionality implemented are anti-jitter (don't jumping
around), smoother motions, touch detection, pointer acceleration and
some more.

Pointer acceleration is implemented as one generic part, and one touch
specific part (a profile).

Some ideas and magic numbers comes from xserver and
xf86-input-synaptics.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-05-17 11:33:45 -04:00
Jonas Ådahl
4136d82760 evdev: Add event process dispatching
By setting an 'evdev_dispatch' struct in 'evdev_input_device' during
device configuration the 'process' function in the associated interface
will be called with received input events. If none is set, a fallback
handler will be set instead that handle generic input functionality.

Signed-off-by: Jonas Ådahl <jadahl@gmail.com>
2012-05-17 11:33:41 -04:00
Kristian Høgsberg
d6ad122d9a compositor: Disable blending for WL_SHM_FORMAT_XRGB8888 surface
Will it blend?  No.
2012-05-17 11:11:15 -04:00
Kristian Høgsberg
c0bc844094 compositor-x11: Check the right variable after creating dummy pbuffer 2012-05-17 09:40:23 -04:00
Kristian Høgsberg
870461997a tests: Rename left-over caps_mask to capability 2012-05-17 09:09:21 -04:00
Kristian Høgsberg
b93b6cfa47 compositor: Remove resource from list when we destroy seat devices 2012-05-16 22:32:40 -04:00
Kristian Høgsberg
97460500a8 xwm: Resize frame window if child window changes size 2012-05-16 22:20:46 -04:00
Kristian Høgsberg
b84108d72a simple-egl: Fix crash and simplify
pointer_handle_enter() expects the struct display as the user data, so
just move wl_seat and wl_pointer into struct display.
2012-05-16 16:16:19 -04:00
Kristian Høgsberg
0b0c2bb3e9 compositor: Add opaque rect shader feature
This lets us mark a rectangle in a texture and force the alpha to one
inside.  This is useful for textures coming from X windows, where the X
window part is xRGB, that is 32 bit RGB with an undefined alpha channel
and the decorations are rendered with a well-defined alpha channel.
2012-05-16 16:00:41 -04:00
Kristian Høgsberg
fb6c6d90f3 xserver: Use frame rendering code from cairo-util 2012-05-16 15:37:06 -04:00
Daniel Stone
37816df646 Convert wl_input_device to wl_seat (and friends)
wl_input_device has been both renamed and split.  wl_seat is now a
virtual object representing a group of logically related input devices
with related focus.

It now only generates one event: to let clients know that it has new
capabilities.  It takes requests which hand back objects for the
wl_pointer, wl_keyboard and wl_touch interfaces it exposes which all
provide the old input interface, just under different names.

This commit tracks these changes in weston and the clients, as well as
similar renames (e.g. weston_input_device -> weston_seat).  Some other
changes were necessary, e.g. renaming the name for the visible mouse
sprite from 'pointer' to 'cursor' so as to not conflict.

For simplicity, every seat is always exposed with all three interfaces,
although this will change as time goes on.

Signed-off-by: Daniel Stone <daniel@fooishbar.org>
2012-05-16 15:29:06 -04:00
Scott Moreau
dc549932b7 Convert wl_fixed_t to int in weston_output_update_zoom().
This way, we don't have to use wl_fixed_to_int() for each
call to weston_output_update_zoom(). It accepts wl_fixed_t
types and converts internally.
2012-05-16 11:04:04 -04:00
Kristian Høgsberg
0b61130bae xwm: memset struct to 0
We rely on focus_window being initialize to NULL.
2012-05-16 10:13:41 -04:00