Commit graph

438 commits

Author SHA1 Message Date
Kristian Høgsberg
a6d9a5e4aa xwm: Set WM_STATE window property
xprop and gtk+ dnd is now working.
2012-05-30 12:15:44 -04:00
Kristian Høgsberg
f197e9f7a3 xwm: Bring back synthetic events and handle synthetic unmap notify as per ICCCM 2012-05-30 11:46:29 -04:00
Kristian Høgsberg
e244cb03f7 xwm: Don't try to read deleted properties 2012-05-30 11:34:35 -04:00
Kristian Høgsberg
029539bf27 xwm: Handle reparenting windows 2012-05-30 11:28:24 -04:00
Kristian Høgsberg
44c2013d43 xwm: Don't select for XCB_EXPOSE
We don't need expose events.  All windows are redirected and we know
exactly when we need to repaint them.
2012-05-30 10:09:24 -04:00
Kristian Høgsberg
8d1aa7d8ef xwm: Don't dispatch for events coming from XSendEvent
GTK+ sends an unmap_notify to the root window when a toplevel GTK+ window
gets unmapped.  That may be a GTK+ bug, but we should just ignore events
from XSendEvent.
2012-05-30 10:06:59 -04:00
Kristian Høgsberg
194ea5423e xwm: Destroy frame resources and reparent back to root in unmap_notify
The frame window and the wayland surface needs to go away when then
X window is unmapped, not when it's destroyed.
2012-05-30 10:05:41 -04:00
Kristian Høgsberg
d96fe1f7e7 xwm: Remove pointless change set request 2012-05-30 10:04:15 -04:00
Kristian Høgsberg
f94a031b84 xwm: Don't select for STRUCTURE_NOTIFY or RESIZE_REDIRECT
We get all that information through SUBSTRUCTURE_NOTIFY on the parent
windows.
2012-05-30 10:02:58 -04:00
Kristian Høgsberg
bc6e1622b0 xwm: Ignore map request for already mapped window
If a client sends another map request before the server has seen our
reply to the first map request event, we might get a map request for an
already mapped window.  Just ignore that.
2012-05-30 09:59:56 -04:00
Kristian Høgsberg
0273b5716a xwm: Reduce window property debug output
We just print properties when they change now instead of dumping all
properties whenever we re-read them.  Also, make the property output a
little more concise.
2012-05-30 09:58:02 -04:00
Kristian Høgsberg
66a099b775 compositor: Only fini region if it's not the undef region 2012-05-29 16:49:45 -04:00
Kristian Høgsberg
c9571fbd3a xwm: Reset wm->focus_window when the focused window is destroyed 2012-05-29 15:35:29 -04:00
Kristian Høgsberg
053be42a4e wcap: Compute per-component deltas 2012-05-29 12:15:47 -04:00
Kristian Høgsberg
92a57db6f2 shell: Add keybinding to force-close (SIGKILL) inactive clients 2012-05-26 13:41:06 -04:00
Chad Versace
bf38190744 compositor: Fix buggy snprintf that sets module path
If the MODULEDIR string contains '%', then
    snprintf(path, sizeof(path), MODULEDIR "/%s", name);
does not do what you want.

Signed-off-by: Chad Versace <chad.versace@linux.intel.com>
2012-05-25 23:05:44 -04:00
Tiago Vignatti
629ce23bd0 xwayland: change library name
Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-25 22:54:40 -04:00
Tiago Vignatti
99aeb1e72d shell: use transient flags for activate or not new surfaces
Inactive surfaces doesn't set keyboard focus, so it can be used for tooltips,
toolbars and some other type of windows.

This requires protocol side changes.

Signed-off-by: Tiago Vignatti <tiago.vignatti@intel.com>
2012-05-25 22:52:03 -04:00
Kristian Høgsberg
bf17130144 wcap: Move old wcap-encode to wcap/ as wcap-snapshot 2012-05-25 18:08:29 -04:00
Kristian Høgsberg
2bcb2fc1fd wcap: Rename wcap-encode to just wcap 2012-05-25 18:03:52 -04:00
Kristian Høgsberg
894e0b544c wcap: Move wcap structs and constants to a shader header 2012-05-25 17:55:20 -04:00
Kristian Høgsberg
e012c829af wcap: Discard first frame since it doesn't have a full frame of damage 2012-05-25 17:50:42 -04:00
Kristian Høgsberg
3b969608cb wcap: Add a file format magic number and add the pixel format to the header 2012-05-25 17:45:39 -04:00
Kristian Høgsberg
5fb70bf301 Add screen recorder tool
This commit adds a new, built-in screen recorder tool.  The tool UI is
still very simple, start with mod-r and stop it again with mod-r.
The recording is written to capture.wcap, in a simple run-length encoded
adhoc format.  The wcap-decode tool can be used to extract a single frame
from the capture, for now, but the plan is to hook this up to libvpx and
generate webm output.
2012-05-24 12:29:46 -04:00
Kristian Høgsberg
e68fd10f87 xwm: Handle resize cases of _NET_WM_MOVERESIZE 2012-05-22 17:09:40 -04:00
Kristian Høgsberg
c1693f209a xwm: Implement resizing by frame borders 2012-05-22 16:56:23 -04:00
Kristian Høgsberg
f96e6c00d9 Share code to to classify pointer location in frame 2012-05-22 16:38:53 -04:00
Kristian Høgsberg
a61ca06b49 xwm: Add window resize support 2012-05-22 16:05:52 -04:00
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
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
Kristian Høgsberg
de7d66f36b xwm: Dont queue repaints unless we have a frame window 2012-05-21 12:15:50 -04:00