Kristian Høgsberg [Fri, 15 Feb 2013 03:01:58 +0000 (22:01 -0500)]
xwm: Don't leak pending.input region
It's not really a leak, since the region is always a rectangle, but let's
play by the rules.
Conflicts:
src/xwayland/window-manager.c
Giulio Camuffo [Mon, 18 Feb 2013 21:26:01 +0000 (22:26 +0100)]
shell: Do not hang when mapping a popup twice
When calling shell_map_popup() more than one time on the same shell_surface
the parent transform was getting added more than one time to the transform
list, resulting in an infinite loop when going through the list with
wl_list_for_each in weston_surface_update_transform_enable().
This commit removes the old transform before adding it again.
Rafal Mielniczuk [Sun, 17 Feb 2013 14:55:55 +0000 (15:55 +0100)]
compositor: set data_device keyboard focus in seat_get_keyboard
Because seat_get_keyboard is called after initial
weston_surface_activate, wl_data_device_set_keyboard_focus
fails to send data offer for newly connected client due to
wl_seat.focus_resource being NULL.
This patch calls wl_data_device_set_keyboard_focus
in seat_get_keyboard, so it can send data offer for
newly created client (when wl_keyboard.resource_list
and wl_seat.focus_resource are properly set up).
https://bugs.freedesktop.org/show_bug.cgi?id=60617
Kristian Høgsberg [Sat, 16 Feb 2013 19:29:24 +0000 (14:29 -0500)]
xkb: Don't call exit on failure in weston_compositor_xkb_init()
This will exit without cleaning vt modes and leave the system stuck.
https://bugs.freedesktop.org/show_bug.cgi?id=60817
Ander Conselvan de Oliveira [Fri, 15 Feb 2013 16:44:19 +0000 (18:44 +0200)]
shell: Set the DPMS state if the screensaver fails to launch or dies
The lock hook in desktop-shell only changes the DPMS state the second
time it is called, because during the first time it launches the
screensaver and wakes the compositor again when the screensaver surface
is configured. However, if the screensaver fails to launch, the output
is left in an enabled state, even thought there's no content being
displayed on the screen.
Fix this by disabling the outputs when the screensaver dies if the
shell is still locked.
https://bugs.freedesktop.org/show_bug.cgi?id=60084
Kristian Høgsberg [Fri, 15 Feb 2013 03:01:04 +0000 (22:01 -0500)]
xwm: Fix silly region math
We were setting up the opaque region to be the window size and then
intersecting with the opaque rectange that's always contained in the window
rectangle. Just initialize to the opaque rectangle.
Kristian Høgsberg [Fri, 15 Feb 2013 02:56:32 +0000 (21:56 -0500)]
xwm: Fix input region regression from commit changes
This must be the last regression from the surface commit changes. We
need to set the pending.input region, otherwise the region will be
overwritten on commit.
https://bugs.freedesktop.org/show_bug.cgi?id=60610
Jan Arne Petersen [Mon, 11 Feb 2013 14:10:11 +0000 (15:10 +0100)]
shell: Fix bug when input panel is shown twice
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Kristian Høgsberg [Fri, 15 Feb 2013 02:31:44 +0000 (21:31 -0500)]
shell: Add back ability to rotate unresponsive surfaces
When a surface in deemed unresponsive and we trigger the busy cursor, it's
no longer possible to rotate the surface. This is clearly unacceptable.
This patch adds handling of right clicks to the busy grab so that we can
continue to rotate a surface even if the client is sleeping.
https://bugs.freedesktop.org/show_bug.cgi?id=60609
Kristian Høgsberg [Fri, 25 Jan 2013 01:32:30 +0000 (20:32 -0500)]
configure.ac: Bump version to 1.0.5
Kristian Høgsberg [Thu, 14 Feb 2013 21:31:42 +0000 (16:31 -0500)]
window.c: Don't allow moving a maximized window
Ideally the shell would send an unmaximize event to the client when
we try to move a maximized window, but for now, let's just prevent
moving maximized windows.
https://bugs.freedesktop.org/show_bug.cgi?id=56296
Rob Bradford [Tue, 12 Feb 2013 11:53:47 +0000 (11:53 +0000)]
shell: Bypass fullscreen scaling if surface width and height match output
If our surface has width and height set to the same dimensions as the output
then we can bypassing the scale factor calculation and addition of the
transformation.
The use case that led to this optimisation is the playback of video using
gstreamer-vaapi with the "scale" method. The video is the same dimensions as
the output (1080p.)
Martin Andersson [Tue, 12 Feb 2013 23:11:12 +0000 (00:11 +0100)]
weston-launcher: Add missing newline in error message
Kristian Høgsberg [Thu, 14 Feb 2013 17:09:41 +0000 (12:09 -0500)]
configure.ac: Add version to bug URL as well
Scott Moreau [Wed, 13 Feb 2013 21:29:35 +0000 (14:29 -0700)]
configure.ac: Change bugs.freedesktop.org product to Wayland
Update the bug link. Thanks to Rune K. Svendsen for spotting this.
https://bugs.freedesktop.org/show_bug.cgi?id=60818
Conflicts:
configure.ac
Ander Conselvan de Oliveira [Wed, 13 Feb 2013 14:06:37 +0000 (16:06 +0200)]
compositor: Init fade surface color properly
When fading in, if a repaint was triggered after a call to
weston_compositor_fade() but before the first call to fade_frame(),
the fade surface wouldn't be drawn because its alpha channel wasn't
initialized properly.
Kristian Høgsberg [Wed, 13 Feb 2013 18:40:58 +0000 (13:40 -0500)]
screenshot: Print warning if we're not launched from weston
weston-screenshooter is a helper binary that weston launches to write the
screenshot to disk. If somebody tries to launch it by hand, print a
warning and mention the screenshot keybinding.
U. Artie Eoff [Tue, 29 Jan 2013 23:30:09 +0000 (15:30 -0800)]
tests: fix assignment typo, should be comparison
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Scott Moreau [Wed, 29 Aug 2012 21:15:58 +0000 (15:15 -0600)]
Add --version option
Kristian Høgsberg [Tue, 29 Jan 2013 19:14:06 +0000 (14:14 -0500)]
weston-launch: Clear environment and set it up from scratch
With recent systemd[1] XDG_VTNR will leak through to pam, which ends up
setting a vtnr pam argument with the wrong value. The fix is to clear
XDG_VTNR first, but what we should have been doing all along is resetting
the environment.
Thanks to Ray Strode for helping debug this.
[1] http://cgit.freedesktop.org/systemd/systemd/commit/?id=
a8573ccc35a4efe8900be5d48c6c803670540c2b
Kristian Høgsberg [Mon, 28 Jan 2013 21:03:51 +0000 (16:03 -0500)]
toytoolkit: Remove left-over pixman dependency
toytoolkit doesn't use pixman. Remove the pixman.h include and the
LDADD.
https://bugs.freedesktop.org/show_bug.cgi?id=57812
Kristian Høgsberg [Mon, 28 Jan 2013 21:01:22 +0000 (16:01 -0500)]
Add new shared/image-loader.h to separate include dependencies
Before, cairo-util.h would combine pixman and cairo includes. X11 and
Wayland compositors uses this to load an image as a pixman_image_t but are
forced to include cairo headers. Clients use load_cairo_surface to
load images as cairo_surface_t's, but are forced to include pixman.h.
We move the load_image pixman prototype to its own header, so compositors
can get at the pixman prototype without including cairo.h and clients
can include the cairo based function without including pixman.h.
Conflicts:
src/compositor-wayland.c
Kristian Høgsberg [Mon, 28 Jan 2013 20:35:03 +0000 (15:35 -0500)]
clients: Make libtoytoolkit a libtool library
This way libtool will remember the libtoytoolkit LIBADD libraries.
We can drop the toolkit_libs hack and just link to libtoytoolkit.la and
libtool will add the dependencies.
Conflicts:
clients/Makefile.am
Dima Ryazanov [Mon, 28 Jan 2013 09:11:06 +0000 (01:11 -0800)]
terminal: Handle the window close event
There may be multiple windows open, so destroy the terminal instead of exiting.
Signed-off-by: Dima Ryazanov <dima@gmail.com>
Kristian Høgsberg [Fri, 25 Jan 2013 01:32:30 +0000 (20:32 -0500)]
configure.ac: Bump version to 1.0.4
Scott Moreau [Tue, 22 Jan 2013 06:40:59 +0000 (23:40 -0700)]
weston-launch: Use "weston-launch" for --help instead of "weston".
The output of weston-launch --help was "Usage: weston [args...] ...".
This changes it to read "Usage: weston-launch [args...] ...".
Pekka Paalanen [Tue, 18 Dec 2012 15:30:16 +0000 (17:30 +0200)]
tests: make signal other than ABRT a hard failure
We handle FAIL_TEST tests by simply inverting the success flag. The
problem with this is, that if a FAIL_TEST fails by a SIGSEGV, it will be
interpreted as passed. However, no code should ever cause a SEGV, or any
other signal than ABRT. And even ABRT only in the case of an assert()
that is meant to fail. We would probably need more sophistication for the
FAIL_TEST cases.
For now, just interpret any other signal than ABRT as a hard failure,
regardless whether it is a TEST or FAIL_TEST. At least segfaults do not
cause false passes anymore.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Martin Minarik [Fri, 18 Jan 2013 17:44:29 +0000 (18:44 +0100)]
Weston: weston.ini.man page
changes:
- launcher path, passing environment variables and parameter
- indent modeline example
Ning Tang [Thu, 27 Dec 2012 07:36:35 +0000 (15:36 +0800)]
compositor-drm: Remove drm_disable_unused_sprites()
If a sprite is no longer used, it is disabled on the call to
drmModeSetPlane() when doing the output repaint, since its
pending_fb_id is 0.
This patch is a backport patch on weston 1.0.
Originally from Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
commit
3b2bd44d924744fa4635390e91afe569351e7d8d
Some platform has a heavy CPU load caused by redundant drmModeRmFB,
which is called in drm_disable_unused_sprites and would trigger drm_err.
Signed-off-by: Ning Tang <ning.tang@intel.com>
Kristian Høgsberg [Fri, 14 Dec 2012 21:32:34 +0000 (16:32 -0500)]
configure.ac: Bump version to 1.0.3
Kristian Høgsberg [Fri, 14 Dec 2012 21:19:43 +0000 (16:19 -0500)]
tests: Pass --backend so the test suite runs with the right modules
Without this we try to load the installed backends, which is nasty for
regular runs, and just doesn't work for make distcheck, which sets
prefix to $PWD/_inst. This makes sure we load the right backend
and make distcheck pass. Other modules (xwayland, shells etc) just don't
get loaded for distcheck and for make check we still try to load the
installed modules.
Pekka Paalanen [Thu, 13 Dec 2012 08:01:25 +0000 (10:01 +0200)]
tests: remove test logs on 'make clean'
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Kristian Høgsberg [Fri, 14 Dec 2012 19:40:50 +0000 (14:40 -0500)]
text-test: Remove left-over WAYLAND_DEBUG setenv call
Kristian Høgsberg [Fri, 14 Dec 2012 15:18:39 +0000 (10:18 -0500)]
clients: Add screenshooter-client-protocol.h to screenshooter sources
Pekka Paalanen [Wed, 12 Dec 2012 12:26:39 +0000 (14:26 +0200)]
update git ignores
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Wed, 12 Dec 2012 12:26:41 +0000 (14:26 +0200)]
tests: check wl_display_roundtrip() for errors
Add a macro that wraps wl_display_roundtrip() and check for errors. It
is a macro, so that the assert would show the relevant file and line
number.
This will also catch protocol errors, that would go unnoticed otherwise.
All roundtrips in tests are replaced with the check.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Wed, 12 Dec 2012 12:26:40 +0000 (14:26 +0200)]
tests: set client log handler
Otherwise we cannot normally see protocol errors etc. in the test
output.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Wed, 12 Dec 2012 12:26:38 +0000 (14:26 +0200)]
tests: write logs to files
This cleans up the 'make check' output considerably. When all goes well,
you will only see the "PASS" line for each of $TESTS.
Weston logs into a separate file than stdout and stderr, so server logs
end up in one file per test, and other output to another file per test.
'make distclean' does not remove the tests/logs/ directory.
Also changes the weston-tests-env interpreter to bash, since I think &>
and ${1/.la/.so} might be bashisms.
Kristian Høgsberg [Wed, 12 Dec 2012 04:22:16 +0000 (23:22 -0500)]
tests: Convert remaining module tests to not use test-runner.c
The remaining module tests don't need to fork and talk to a test client,
so just convert them to regular modules and let them handle running their
tests themselves. Then drop test-runner.[ch].
Kristian Høgsberg [Wed, 12 Dec 2012 04:16:11 +0000 (23:16 -0500)]
tests: Remove client-test test
This test case is the last user of the test-client code and it only
tests launching the test-client. In other words it's a minimal test
of the framework we're dropping, so just drop this test.
Kristian Høgsberg [Wed, 12 Dec 2012 04:03:56 +0000 (23:03 -0500)]
tests: Port text-test to new test framework
So much simpler this way and the test suite is now back too 100% pass.
Kristian Høgsberg [Wed, 12 Dec 2012 03:17:35 +0000 (22:17 -0500)]
tests: Drop yield() helper function
Remaining use case was when we move the pointer. This doesn't change
geometry so we can just use a wl_display_roundtrip() to make sure
we get the request to the server and receive the resulting events.
Kristian Høgsberg [Wed, 12 Dec 2012 03:00:50 +0000 (22:00 -0500)]
keyboard-test: Use wl_display_roundtrip() instead of yield()
As for button-test, a wl_display_roundtrip is sufficient here. The
yield() between wl_test_activate_surface() and wl_test_send_key() is
also not needed, since the two requests will arrive at the server in
order, and will activate the surface first, then send a key event.
Kristian Høgsberg [Wed, 12 Dec 2012 02:56:13 +0000 (21:56 -0500)]
button-test: Use wl_display_roundtrip instead of yield()
A round trip is sufficient here. We need to make sure that the server
has received the wl_test request and that we've received the event
that the request triggers. The wl_display_roundtrip() helper does
exactly that: it sends a wl_display.sync request, which will hit the
server after the wl_test requests and thus the wl_callback.done event
will come back after the server has seen all the previous requests and
after we've handled all preceeding event.
Kristian Høgsberg [Wed, 12 Dec 2012 02:49:13 +0000 (21:49 -0500)]
weston-test-client-helper: Use a frame callback to flush surface geometry
When moving a test surface, use a frame callback to make sure the
surface has been moved and the geometry updated. The compositor may
delay updating the transform matrices, but once we get the frame
callback we know the surface has been repainted and the geometry
updated.
U. Artie Eoff [Fri, 7 Dec 2012 21:50:34 +0000 (13:50 -0800)]
tests: Convert button-test to new test extension
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=56821
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 7 Dec 2012 21:50:33 +0000 (13:50 -0800)]
tests: Convert event-test to new test extension
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=56819
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 7 Dec 2012 21:50:32 +0000 (13:50 -0800)]
tests: Convert keyboard-test to new test extension
This adds a weston-test-runner for the weston test extension and
some weston test client helper methods.
Converted keyboard-test to use the new test interface, runner,
and helper methods.
Fixes https://bugs.freedesktop.org/show_bug.cgi?id=56822
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 7 Dec 2012 21:50:31 +0000 (13:50 -0800)]
tests: Allow weston-tests-env to process different test types
The weston-tests-env script needs to be able to handle weston
test extension style tests as well as module style tests.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 7 Dec 2012 21:50:30 +0000 (13:50 -0800)]
tests: Rename weston-test to weston-tests-env
Renamed weston-test test environment script to weston-tests-env
to avoid ambiguity with weston-test.c (the weston test extension).
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
U. Artie Eoff [Fri, 7 Dec 2012 21:50:29 +0000 (13:50 -0800)]
tests: Define and implement a test protocol extension.
The weston test extension, called weston-test.so, can be loaded
from the "modules" configuration option on the command line
or in the .ini file.
Clients can bind to the "wl_test" interface to interact with
the weston test extension.
Signed-off-by: U. Artie Eoff <ullysses.a.eoff@intel.com>
Rob Bradford [Thu, 6 Dec 2012 12:07:48 +0000 (12:07 +0000)]
shell: Remove confusing case fall-through
This avoids calling weston_surface_set_position twice on the same surface. The
second call has no effect in many cases because sx and sy
are usually zero on this path.
This change now means that any sx/sy values passed into ::attach will be
ignored on the first attach for popup surfaces. This similar to the behaviour
for other surface types.
Rob Bradford [Wed, 5 Dec 2012 18:47:11 +0000 (18:47 +0000)]
weston-launch: Add some error reporting for weston-launch
This also avoids us passing (size_t)(-1 * sizeof(gid_t)) into malloc
Rob Bradford [Wed, 5 Dec 2012 18:47:10 +0000 (18:47 +0000)]
compositor: Cleanup if we can't find the symbol in the module
Rob Bradford [Wed, 5 Dec 2012 18:47:09 +0000 (18:47 +0000)]
backlight: Revamp error handling code to not leak the directory
To neatly free the directory pointer allocated by opendir(), adjust the error
handling paths to go through to the err label.
Rob Bradford [Wed, 5 Dec 2012 18:47:08 +0000 (18:47 +0000)]
tty: Clean up completely if switching vt fails
The code under the "err" label closes the file descriptor and frees the
allocated memory.
Rob Bradford [Wed, 5 Dec 2012 18:47:07 +0000 (18:47 +0000)]
xwayland: Close fd opened for lockfile on error path
Rob Bradford [Wed, 5 Dec 2012 18:47:06 +0000 (18:47 +0000)]
backlight: Remove unnecessary and confusing NULL checks
At this point path must point to an allocated string since otherwise the
asprintf that makes the allocation would have failed and we would have
returned earlier.
Rob Bradford [Wed, 5 Dec 2012 18:47:05 +0000 (18:47 +0000)]
compositor: Avoid sending event for invalid point
Avoid sending a touch down event using uninitialised surface x/y co-ordinates.
Instead present a log message about this unexpected case.
Rob Bradford [Wed, 5 Dec 2012 18:47:04 +0000 (18:47 +0000)]
screenshooter: Report an error if we fail to open the file
Pekka Paalanen [Tue, 4 Dec 2012 13:58:10 +0000 (15:58 +0200)]
compositor: do not release if re-attaching buffer
If a client called wl_surface.attach with the same wl_buffer as
previously, the compositor would mistakenly send a release on that
buffer. This will cause problems only when clients start to properly use
the wl_buffer.release event.
Do not send wl_buffer.release if the same buffer is attached again.
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Jan Arne Petersen [Mon, 3 Dec 2012 14:36:02 +0000 (15:36 +0100)]
shell: Do not remove input panel layer when locked
Do not remove the input panel layer from the layer list when the
shell is locked in hide_input_panels().
https://bugs.freedesktop.org/show_bug.cgi?id=56543
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Kristian Høgsberg [Fri, 30 Nov 2012 21:18:36 +0000 (16:18 -0500)]
configure.ac: Bump version to 1.0.2
Ander Conselvan de Oliveira [Fri, 30 Nov 2012 15:34:22 +0000 (17:34 +0200)]
compositor-drm: Allow scanning out of opaque ARGB surfaces
Pekka Paalanen [Fri, 30 Nov 2012 11:37:28 +0000 (13:37 +0200)]
Fix build warnings from image_loader
Fix the following build warnings, and the build failures due to the
warning fixes:
CC libshared_cairo_la-image-loader.lo
image-loader.c:369:1: warning: no previous prototype for 'load_image'
CC x11_backend_la-compositor-x11.lo
compositor-x11.c: In function 'x11_output_set_icon':
compositor-x11.c:396:2: warning: implicit declaration of function 'load_image'
compositor-x11.c:396:8: warning: assignment makes pointer from integer without a cast
CC wayland_backend_la-compositor-wayland.lo
compositor-wayland.c: In function 'create_border':
compositor-wayland.c:97:2: warning: implicit declaration of function 'load_image'
compositor-wayland.c:97:8: warning: assignment makes pointer from integer without a cast
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Conflicts:
src/compositor-wayland.c
Dima Ryazanov [Thu, 29 Nov 2012 08:27:09 +0000 (00:27 -0800)]
Fix a crash when opening two terminal windows and closing the first one.
To reproduce, launch the terminal, open a second window using Ctrl-Shift-N,
go back to the first window, and press Ctrl-D. The terminal's master FD gets
events even after being closed, causing terminal_destroy to be called twice
on the same object.
To fix this, I'm adding a function to stop watching an FD.
Kristian Høgsberg [Thu, 29 Nov 2012 22:00:33 +0000 (17:00 -0500)]
compositor-x11: Link to libshared-cairo for icon loading helper
The X11 backend needs the image loader helper to load the window
icon.
Kristian Høgsberg [Thu, 29 Nov 2012 17:23:36 +0000 (12:23 -0500)]
configure.ac: Don't link weston to cairo or image libraries
We were pulling in cairo and the image loading libraries through libshared.
Split out libshared into a core libshared and a libshared-cairo that
pulls in the extra libraries.
Scott Moreau [Tue, 27 Nov 2012 23:54:53 +0000 (16:54 -0700)]
weston.ini: Introduce core section and remove type keys.
Since
a6813d288, there is no longer a "type" key in the [shell] config section.
Instead the code accepts a [core] section with a modules key, containing a
comma separated list of modules to load. This patch removes the type keys
and adds a core section in the example weston.ini config file.
Ander Conselvan de Oliveira [Thu, 22 Nov 2012 13:57:00 +0000 (15:57 +0200)]
compositor: Move clearing of primary plane damage to the backends
Backends may move surfaces to different planes, in which case damage is
generated in the primary plane. This damage is usually passed to the
renderer, but in some cases the backend may decide to not render
anything (that's the case when drm compositor scans out a client
buffer). In that case the damage on the primary plane would be
discarded, leading to artifacts later.
This patch makes the backend's responsibility to clear the damage on
the primary plane, so that unrendered damage is kept for as long as
necessary.
Pekka Paalanen [Tue, 27 Nov 2012 14:54:09 +0000 (16:54 +0200)]
man: fill missing pieces to weston page
Config file, WAYLAND_SOCKET, XDG_CONFIG_HOME, segfault handler.
NOTE: This is a candidate for the stable branch
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Pekka Paalanen [Tue, 27 Nov 2012 14:54:08 +0000 (16:54 +0200)]
man: add weston-drm page
Add some documentation about the DRM backend into its own man page, and
refer to it in weston(1).
Environment variable, that are reserved for backends, and currently used
only by the DRM backend, are moved to weston-drm page.
NOTE: This is a candidate for the stable branch
Signed-off-by: Pekka Paalanen <ppaalanen@gmail.com>
Scott Moreau [Thu, 22 Nov 2012 22:35:13 +0000 (15:35 -0700)]
xwm: Fix xwm opaque region
Since surface.commit was introduced, opqaue regions are stored in a pending
variable that isn't used until surface.commit. Xwayland uses the surface opaque
region as a way to tell weston what region of the surface should be opaque.
However when this pending opaque region was introduced, xwm was not updated
and so we have the 'black = transparent' problem again. This patch fixes the
problem by having xwm use the pending opaque regions.
Kristian Høgsberg [Tue, 20 Nov 2012 03:13:51 +0000 (22:13 -0500)]
configure.ac: Bump version to 1.0.1
Scott Moreau [Mon, 19 Nov 2012 21:17:52 +0000 (14:17 -0700)]
simple-egl: Reset opaque region if not fullscreen.
If simple-egl is toggled fullscreen, the opqaue region is set for the surface
but never removed after exiting fullscreen. This patch resets the opaque region
to 0 if the surface is not fullscreen and -o was not passed. This fixes the
problem introduced sometime since
d7f282b84e, when this was last fixed.
Ander Conselvan de Oliveira [Fri, 7 Sep 2012 14:32:16 +0000 (17:32 +0300)]
simple-egl: Set the right size for the opaque region when fullscreen
window.window_size holds the size of the window in windowed mode. Use
window.geometry for setting the opaque region since that holds the
current size.
Ville Syrjälä [Fri, 16 Nov 2012 09:48:47 +0000 (11:48 +0200)]
shell/zoom: Increment/decrement disable_planes only when zoom.active changes
disable_planes should only be incremented when zoom.active actually
toggles. Otherwise the counter will be incremented too many times,
and planes will no longer get used.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Signed-off-by: Ander Conselvan de Oliveira <ander.conselvan.de.oliveira@intel.com>
Ville Syrjälä [Fri, 16 Nov 2012 09:48:46 +0000 (11:48 +0200)]
compositor-drm: Don't use overlay when surface alpha != 1.0f
Assume that overlays can't handle alpha blending even with a constant
alpha factor.
Signed-off-by: Ville Syrjälä <ville.syrjala@linux.intel.com>
Kristian Høgsberg [Thu, 15 Nov 2012 01:28:30 +0000 (20:28 -0500)]
wcap: Transform damage rectangles according to output tranform
https://bugs.freedesktop.org/show_bug.cgi?id=56697
Kristian Høgsberg [Wed, 14 Nov 2012 19:42:51 +0000 (14:42 -0500)]
tests: Remove last GLfloat use
With the EGL/GLES2 types out of compositor.h this now fails to compile.
https://bugs.freedesktop.org/show_bug.cgi?id=57129
Dima Ryazanov [Sun, 11 Nov 2012 08:29:01 +0000 (00:29 -0800)]
Fix a typo.
Daniel Stone [Wed, 7 Nov 2012 06:51:35 +0000 (17:51 +1100)]
Terminal: Handle keypad symbols
XKB provides keypad symbols in a separate namespace. We don't care
about the distinction, so map them to normal symbols before starting
processing.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Wed, 7 Nov 2012 06:51:36 +0000 (17:51 +1100)]
smoke: Remove unused offset member
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Jan Arne Petersen [Wed, 7 Nov 2012 14:32:54 +0000 (15:32 +0100)]
shell: Do not insert input panel layer when locked
Do not try to insert the input panel layer in the layer list when the
shell is locked in show_input_panels(). The layer will already be
insrted in resume_desktop() anyways.
https://bugs.freedesktop.org/show_bug.cgi?id=56543
Signed-off-by: Jan Arne Petersen <jpetersen@openismus.com>
Kristian Høgsberg [Thu, 8 Nov 2012 16:36:02 +0000 (11:36 -0500)]
compositor: Use pixman_region32_intersect_rect() instead of temp region
We avoid reusing 'opaque' and don't leak the region.
Daniel Stone [Wed, 7 Nov 2012 06:51:44 +0000 (17:51 +1100)]
Reset pending surface delta x and y on commit
The following sequence:
wl_surface::attach(s, b, 1, 2)
wl_surface::commit(s)
wl_surface::commit(s)
would actually result in the surface getting moved by (2,4) as the
pending attach delta wasn't reset on commit, only by another attach.
This only shows up on single-buffered surfaces.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Wed, 7 Nov 2012 06:51:43 +0000 (17:51 +1100)]
Clip surface damage to the surface area
Otherwise glTexSubImage2D will reject our co-ordinates as being out of
bounds.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Wed, 7 Nov 2012 06:51:42 +0000 (17:51 +1100)]
SHM: Don't flush damage when there is none
Every single frame, we were calling the flush_damage handler in the
renderer. For GLES2 with subimage, this wasn't too bad as we'd never
call glTexSubImage2D, but without it, we'd upload the entire frame
through glTexImage2D every time.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Daniel Stone [Wed, 7 Nov 2012 06:51:39 +0000 (17:51 +1100)]
Clients: Don't set the cursor when we have no pointer
Avoids a segfault whenever we get a key event, and try to set the
cursor, dereferencing a NULL input->pointer.
Signed-off-by: Daniel Stone <daniel@fooishbar.org>
Kristian Høgsberg [Tue, 6 Nov 2012 01:20:53 +0000 (20:20 -0500)]
window.c: Move misplaced break to where it belongs
The break statement wasn't copy and pasted along with the rest of the code
causing menu item before it ("Move to workspace below") to fall through to
the fullscreen case.
Kristian Høgsberg [Fri, 2 Nov 2012 14:14:40 +0000 (10:14 -0400)]
compositor-drm: Always disable sprites for now
Until the nuclear pageflip work lands in KMS, we can't use sprites
reliably.
Ran Benita [Wed, 31 Oct 2012 18:14:58 +0000 (20:14 +0200)]
compositor-x11: verify that detectable repeat was really set
Since the XKB says that support for detectable repeat is in fact
optional:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Querying_and_Changing_Per_Client_Flags
we might as well be good citizens and check that it was really set. With
the X server this would never happen, though.
Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita [Wed, 31 Oct 2012 18:14:57 +0000 (20:14 +0200)]
compositor-x11: properly initialize XKB extension
In order to use XKB capabilities (as we do), the client must issue an
XkbUseExtension request:
http://www.x.org/releases/current/doc/kbproto/xkbproto.html#Initializing_the_X_Keyboard_Extension
The reason this succeeds currently is that XOpenDisplay from Xlib does
this for us. But it is better not to rely on that, but do it explicitly
in XCB with the rest of the XKB init sequence.
Signed-off-by: Ran Benita <ran234@gmail.com>
Ran Benita [Wed, 31 Oct 2012 18:14:56 +0000 (20:14 +0200)]
compositor-x11: free or discard XCB generic_error's
Where we don't look at the error details, pass NULL to the 'error'
argument and test using the reply return value instead.
Where we do need it, remember to free it.
Signed-off-by: Ran Benita <ran234@gmail.com>
Ander Conselvan de Oliveira [Wed, 31 Oct 2012 15:55:46 +0000 (17:55 +0200)]
compositor-drm: Add key binding for hidding overlays
Pressing ctrl-alt-o will cause the overlays to be hidden, but surfaces
will still be assigned to different planes. This helps with debugging
of repaint culling below surfaces in other planes.
Ander Conselvan de Oliveira [Wed, 31 Oct 2012 15:55:45 +0000 (17:55 +0200)]
compositor: Fix culling of repaints behind opaque surfaces
Culling of the repaint of a surface behind an opaque surface on the
same plane was broken by commit
547149a9 [1]. The idea of that commit
is that the damage obscured by an overlay would remain on the primary
plane damage and be repainted when the overlay moved. However, in the
case the two surfaces are on the same plane, the opaque one is not
obscured, so it ends up being repainted.
This commit adds an opaque field to struct weston_plane, that is built
incrementally when accumulating damage. The opaque region of surfaces
on the same plane are removed from the plane's damage, restoring the
previous culling behavior. But since damage behind opaque region of
other planes is maintained, the bug solved in the mentioned commit is
not regressed.
https://bugs.freedesktop.org/show_bug.cgi?id=56537
Ran Benita [Tue, 30 Oct 2012 22:13:08 +0000 (00:13 +0200)]
compositor-x11: use _checked() with xkb_select_events to test for error
In order to use xcb_request_check(), given a request without a reply,
you need to use the _checked() variant of the request function.
See xcb-requests(3).
Signed-off-by: Ran Benita <ran234@gmail.com>
Kristian Høgsberg [Tue, 30 Oct 2012 22:10:30 +0000 (18:10 -0400)]
window: Fix use-after-free in menu button handler
Commit
d2fbb3870cfaea623a87ba28c9587676bbdc93f7 introduced a use-after-free
error in the case where we destroy the menu.
Kristian Høgsberg [Tue, 30 Oct 2012 22:07:02 +0000 (18:07 -0400)]
window: Only advertise fullscreen menu item if client supports it
If the client doesn't set a fullscreen handler, we can't go fullscreen
and shouldn't advertise that in the window menu. The menu implementation is
a little simplistic, so we just move the "Fullscreen" entry to the end of
the list and don't count it if we don't want it in the menu.
https://bugs.freedesktop.org/show_bug.cgi?id=47751
https://bugs.freedesktop.org/show_bug.cgi?id=48106
Kristian Høgsberg [Tue, 30 Oct 2012 19:50:37 +0000 (15:50 -0400)]
image: Set dragging pointer on button press, not first motion
We want feedback that we're starting to drag when we press the button
not when we later start dragging the image.