weston: Changes to 'debian-unstable'
Makefile.am | 2
clients/Makefile.am | 152 +++++++++--------
clients/calibrator.c | 17 ++
clients/clickdot.c | 4
clients/desktop-shell.c | 34 +++-
clients/flower.c | 12 +
clients/fullscreen.c | 12 +
clients/image.c | 1
clients/nested.c | 12 -
clients/screenshot.c | 26 ++-
clients/simple-egl.c | 55 ++++++
clients/simple-shm.c | 6
clients/simple-touch.c | 7
clients/smoke.c | 24 ++
clients/tablet-shell.c | 2
clients/terminal.c | 4
clients/transformed.c | 12 +
clients/weston-simple-im.c | 2
clients/window.c | 321 +++++++++++++++++++++++++++++++++++---
clients/window.h | 50 +++++
configure.ac | 98 ++++++++++-
debian/changelog | 2
man/weston.ini.man | 7
src/Makefile.am | 3
src/clipboard.c | 11 +
src/cms-colord.c | 1
src/cms-helper.h | 2
src/compositor-drm.c | 6
src/compositor-fbdev.c | 6
src/compositor-rdp.c | 2
src/compositor-x11.c | 71 +-------
src/compositor.c | 98 ++++++++++-
src/compositor.h | 7
src/data-device.c | 29 ++-
src/evdev.c | 166 ++++++++++++-------
src/evdev.h | 2
src/filter.h | 2
src/gl-renderer.c | 24 +-
src/input.c | 33 +++
src/launcher-util.h | 2
src/pixman-renderer.h | 4
src/shell.c | 137 ++++++++++++++--
src/spring-tool.c | 2
src/text-backend.c | 1
src/tty.c | 2
src/udev-seat.c | 10 +
src/udev-seat.h | 2
src/weston-egl-ext.h | 11 +
src/weston-launch.c | 11 +
src/xwayland/Makefile.am | 3
src/xwayland/hash.c | 2
src/xwayland/launcher.c | 10 -
src/xwayland/window-manager.c | 52 ++----
src/xwayland/xwayland.h | 1
tests/Makefile.am | 3
tests/weston-test-client-helper.c | 2
wayland-scanner.mk | 8
wcap/main.c | 2
wcap/wcap-decode.c | 3
59 files changed, 1240 insertions(+), 353 deletions(-)
New commits:
commit c21821a833128aed06e4fa3a90d126c6d9c2da25
Author: Timo Aaltonen <tjaalton@ubuntu.com>
Date: Mon Oct 7 11:08:03 2013 +0300
update the version
diff --git a/debian/changelog b/debian/changelog
index bd91bab..bf240e8 100644
--- a/debian/changelog
+++ b/debian/changelog
@@ -1,4 +1,4 @@
-weston (1.2.0-1) UNRELEASED; urgency=low
+weston (1.2.2-1) UNRELEASED; urgency=low
[ Sven Joachim ]
* New upstream release (Closes: #719144).
commit 5824af080d2477580832da990610b54fecb0710b
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 29 15:18:49 2013 -0700
configure.ac: Bump version to 1.2.2
diff --git a/configure.ac b/configure.ac
index 9329755..f241ee3 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
m4_define([weston_major_version], [1])
m4_define([weston_minor_version], [2])
-m4_define([weston_micro_version], [1])
+m4_define([weston_micro_version], [2])
m4_define([weston_version],
[weston_major_version.weston_minor_version.weston_micro_version])
commit 237c1c82bb0e487609a2e3e03bf33f9713cd24e0
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 28 23:16:20 2013 -0700
shell: Make sure we have seat->pointer and seat->touch before dereferencing
Either of these may not be available when we handle wl_shell_surface.move,
and we need to not crash when that's the case.
https://bugs.freedesktop.org/show_bug.cgi?id=68649
diff --git a/src/shell.c b/src/shell.c
index c3dc347..0efdd1d 100644
--- a/src/shell.c
+++ b/src/shell.c
@@ -1227,13 +1227,15 @@ shell_surface_move(struct wl_client *client, struct wl_resource *resource,
struct shell_surface *shsurf = wl_resource_get_user_data(resource);
struct weston_surface *surface;
- surface = weston_surface_get_main_surface(seat->pointer->focus);
- if (seat->pointer->button_count > 0 && seat->pointer->grab_serial == serial) {
+ if (seat->pointer &&
+ seat->pointer->button_count > 0 &&
+ seat->pointer->grab_serial == serial) {
surface = weston_surface_get_main_surface(seat->pointer->focus);
if ((surface == shsurf->surface) &&
(surface_move(shsurf, seat) < 0))
wl_resource_post_no_memory(resource);
- } else if (seat->touch->grab_serial == serial) {
+ } else if (seat->touch &&
+ seat->touch->grab_serial == serial) {
surface = weston_surface_get_main_surface(seat->touch->focus);
if ((surface == shsurf->surface) &&
(surface_touch_move(shsurf, seat) < 0))
commit 6048a357e2fb282a7460f01bd8d8ef90e2bbf7d9
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 28 23:05:29 2013 -0700
gl-renderer: Use GL_UNSIGNED_SHORT for index array type
GL_UNSIGNED_INT is only supported when GL_OES_element_index_uint is
available (mesa implements that extension). We don't need 32-bit
indices, so just use GL_UNSIGNED_SHORT.
diff --git a/src/gl-renderer.c b/src/gl-renderer.c
index 54da534..f43e954 100644
--- a/src/gl-renderer.c
+++ b/src/gl-renderer.c
@@ -856,7 +856,7 @@ texture_border(struct weston_output *output)
struct weston_compositor *ec = output->compositor;
struct gl_renderer *gr = get_renderer(ec);
GLfloat *d;
- unsigned int *p;
+ unsigned short *p;
int i, j, k, n;
GLfloat x[4], y[4], u[4], v[4];
@@ -956,7 +956,7 @@ draw_border(struct weston_output *output)
glEnableVertexAttribArray(1);
glDrawElements(GL_TRIANGLES, n * 6,
- GL_UNSIGNED_INT, gr->indices.data);
+ GL_UNSIGNED_SHORT, gr->indices.data);
glDisableVertexAttribArray(1);
glDisableVertexAttribArray(0);
commit 00ff1e1c473ea8fabf8f459c4bd32a73afb50916
Author: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
Date: Wed Aug 28 11:22:41 2013 +0200
configure.ac: fix broken compilation when configure with --disable-egl option
Fix bug 67561: "configure with --disable-egl option breaks fbdev backend
compilation"
https://bugs.freedesktop.org/show_bug.cgi?id=67561
Signed-off-by: Samuel Iglesias Gonsalvez <siglesias@igalia.com>
diff --git a/configure.ac b/configure.ac
index 20c4ba8..9329755 100644
--- a/configure.ac
+++ b/configure.ac
@@ -190,7 +190,7 @@ AM_CONDITIONAL([ENABLE_FBDEV_COMPOSITOR],
[test x$enable_fbdev_compositor = xyes])
AS_IF([test x$enable_fbdev_compositor = xyes], [
AC_DEFINE([BUILD_FBDEV_COMPOSITOR], [1], [Build the fbdev compositor])
- PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0])
+ PKG_CHECK_MODULES([FBDEV_COMPOSITOR], [libudev >= 136 mtdev >= 1.1.0 libdrm >= 2.4.30])
])
AC_ARG_ENABLE([rdp-compositor], [ --enable-rdp-compositor],,
commit c6b6e78c0d3b7e790f5c46db08868507b7b3ceb1
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 28 22:12:24 2013 -0700
evdev: Don't transform device->abs.x/y in place
We don't always get both an X and an Y event in a SYN report, so we end
up transforming the coordinate we don't get twice. For example, if we
only receive an ABS_X event, we transform the already transformed
device->abs.y again in transform_absolute() when applying the calibration.
diff --git a/src/evdev.c b/src/evdev.c
index 7139989..51b99e6 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -236,33 +236,32 @@ is_motion_event(struct input_event *e)
}
static void
-transform_absolute(struct evdev_device *device)
+transform_absolute(struct evdev_device *device, int32_t *x, int32_t *y)
{
- int32_t x, y;
-
- if (!device->abs.apply_calibration)
- return;
-
- x = device->abs.x * device->abs.calibration[0] +
- device->abs.y * device->abs.calibration[1] +
- device->abs.calibration[2];
-
- y = device->abs.x * device->abs.calibration[3] +
- device->abs.y * device->abs.calibration[4] +
- device->abs.calibration[5];
-
- device->abs.x = x;
- device->abs.y = y;
+ if (!device->abs.apply_calibration) {
+ *x = device->abs.x;
+ *y = device->abs.y;
+ return;
+ } else {
+ *x = device->abs.x * device->abs.calibration[0] +
+ device->abs.y * device->abs.calibration[1] +
+ device->abs.calibration[2];
+
+ *y = device->abs.x * device->abs.calibration[3] +
+ device->abs.y * device->abs.calibration[4] +
+ device->abs.calibration[5];
+ }
}
static void
evdev_flush_motion(struct evdev_device *device, uint32_t time)
{
- struct weston_seat *master = device->seat;
- wl_fixed_t x, y;
- int slot;
+ struct weston_seat *master = device->seat;
+ wl_fixed_t x, y;
+ int32_t cx, cy;
+ int slot;
- if (!(device->pending_events & EVDEV_SYN))
+ if (!(device->pending_events & EVDEV_SYN))
return;
slot = device->mt.slot;
@@ -296,16 +295,15 @@ evdev_flush_motion(struct evdev_device *device, uint32_t time)
if (device->pending_events & EVDEV_ABSOLUTE_MT_UP) {
notify_touch(master, time, device->mt.slot, 0, 0,
WL_TOUCH_UP);
- device->pending_events &= ~EVDEV_ABSOLUTE_MT_UP;
- }
- if (device->pending_events & EVDEV_ABSOLUTE_MOTION) {
- transform_absolute(device);
- weston_output_transform_coordinate(device->output,
- device->abs.x,
- device->abs.y, &x, &y);
-
- if (device->caps & EVDEV_TOUCH) {
- if (master->num_tp == 0)
+ device->pending_events &= ~EVDEV_ABSOLUTE_MT_UP;
+ }
+ if (device->pending_events & EVDEV_ABSOLUTE_MOTION) {
+ transform_absolute(device, &cx, &cy);
+ weston_output_transform_coordinate(device->output,
+ cx, cy, &x, &y);
+
+ if (device->caps & EVDEV_TOUCH) {
+ if (master->num_tp == 0)
notify_touch(master, time, 0,
x, y, WL_TOUCH_DOWN);
else
commit 3dbbf321dd0a3e26eab62ad5c77aaf95a593699c
Author: Pier Luigi Fiorini <pierluigi.fiorini@gmail.com>
Date: Fri Aug 23 23:43:23 2013 +0200
compositor.h: Don't include config.h
Public headers should not include config.h.
diff --git a/src/compositor.h b/src/compositor.h
index 3eaac42..3437aea 100644
--- a/src/compositor.h
+++ b/src/compositor.h
@@ -28,8 +28,6 @@
extern "C" {
#endif
-#include "config.h"
-
#include <pixman.h>
#include <xkbcommon/xkbcommon.h>
#include <wayland-server.h>
commit dfe4acb4e2d71731deec3c4f2fb77c92b3afbfa8
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Mon Aug 26 14:43:17 2013 -0700
Add more missing config.h #includes
Now that we use AC_SYS_LARGEFILE, we need to pull in config.h at least
whereever we use mmap(). Fixes at least the test-suite and simple-shm
on 32 bit systems.
diff --git a/clients/simple-shm.c b/clients/simple-shm.c
index 98102eb..0557443 100644
--- a/clients/simple-shm.c
+++ b/clients/simple-shm.c
@@ -21,6 +21,8 @@
* OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/clients/simple-touch.c b/clients/simple-touch.c
index 9e4c60a..865b18d 100644
--- a/clients/simple-touch.c
+++ b/clients/simple-touch.c
@@ -21,6 +21,8 @@
* OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/clients/weston-simple-im.c b/clients/weston-simple-im.c
index 56e30a7..ded6a04 100644
--- a/clients/weston-simple-im.c
+++ b/clients/weston-simple-im.c
@@ -20,6 +20,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
diff --git a/src/xwayland/hash.c b/src/xwayland/hash.c
index d841883..54f3de9 100644
--- a/src/xwayland/hash.c
+++ b/src/xwayland/hash.c
@@ -32,6 +32,8 @@
* Keith Packard <keithp@keithp.com>
*/
+#include <config.h>
+
#include <stdlib.h>
#include <stdint.h>
diff --git a/tests/weston-test-client-helper.c b/tests/weston-test-client-helper.c
index 264dc0d..0350da5 100644
--- a/tests/weston-test-client-helper.c
+++ b/tests/weston-test-client-helper.c
@@ -20,6 +20,8 @@
* OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
diff --git a/wcap/main.c b/wcap/main.c
index 1b14ce0..1e4605a 100644
--- a/wcap/main.c
+++ b/wcap/main.c
@@ -20,6 +20,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
diff --git a/wcap/wcap-decode.c b/wcap/wcap-decode.c
index 2b9304d..87d9337 100644
--- a/wcap/wcap-decode.c
+++ b/wcap/wcap-decode.c
@@ -20,6 +20,8 @@
* CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#include <config.h>
+
#include <stdlib.h>
#include <stdio.h>
#include <stdint.h>
commit 2471fac4d99b93b4557fa8fa1a417c37aba97f4a
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Mon Aug 26 14:35:32 2013 -0700
evdev: Initliaze device->link so we can wl_list_remove() without crashing
We were testing for wl_list_empty() on a { NULL, NULL } list (which
returns false) and then wl_list_remove()ing the device (which crashes).
diff --git a/src/evdev.c b/src/evdev.c
index 3d225bc..7139989 100644
--- a/src/evdev.c
+++ b/src/evdev.c
@@ -603,6 +603,7 @@ evdev_device_create(struct weston_seat *seat, const char *path, int device_fd)
device->rel.dy = 0;
device->dispatch = NULL;
device->fd = device_fd;
+ wl_list_init(&device->link);
ioctl(device->fd, EVIOCGNAME(sizeof(devname)), devname);
devname[sizeof(devname) - 1] = '\0';
@@ -646,8 +647,7 @@ evdev_device_destroy(struct evdev_device *device)
if (device->source)
wl_event_source_remove(device->source);
- if (!wl_list_empty(&device->link))
- wl_list_remove(&device->link);
+ wl_list_remove(&device->link);
if (device->mtdev)
mtdev_close_delete(device->mtdev);
close(device->fd);
commit c2bc9223482288e884f8d4553004a86eccd569e3
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 22 16:24:15 2013 -0700
xwm: Use window->x/y for override redirect surfaces
window->x/y is the coordinate of the top-level surface (whether that's
the frame window or an override-redirect window) and the wayland surface
should be placed there, without the t->margin offset.
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index eb70408..1d35bb0 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -1898,7 +1898,6 @@ xserver_map_shell_surface(struct weston_wm *wm,
{
struct weston_shell_interface *shell_interface =
&wm->server->compositor->shell_interface;
- struct theme *t = window->wm->theme;
if (!shell_interface->create_shell_surface)
return;
@@ -1920,8 +1919,8 @@ xserver_map_shell_surface(struct weston_wm *wm,
return;
} else {
shell_interface->set_xwayland(window->shsurf,
- window->x + t->margin,
- window->y + t->margin,
+ window->x,
+ window->y,
WL_SHELL_SURFACE_TRANSIENT_INACTIVE);
}
}
commit 15df112a0e137a2cb24507a661ad1da5ccfbddcf
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 22 16:20:44 2013 -0700
xwm: Fix transform listener
The coordinate transformation was broken (worked for first output where
output->x/y was 0,0, broke on all other outputs). We can just use
surface->geometry.x/y directly. We can't use the full transformation,
the best we can do is to move the X window to the geometry.x/y location.
Get rid of the static old_sx/sy hack as well.
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index b4a1b7a..eb70408 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -643,11 +643,7 @@ weston_wm_window_transform(struct wl_listener *listener, void *data)
struct weston_wm_window *window = get_wm_window(surface);
struct weston_wm *wm =
container_of(listener, struct weston_wm, transform_listener);
- struct weston_output *output = surface->output;
uint32_t mask, values[2];
- float sxf, syf;
- int sx, sy;
- static int old_sx = -1, old_sy = -1;
if (!window || !wm)
return;
@@ -655,24 +651,15 @@ weston_wm_window_transform(struct wl_listener *listener, void *data)
if (!weston_surface_is_mapped(surface))
return;
- weston_surface_to_global_float(surface, output->x, output->y,
- &sxf, &syf);
+ if (window->x != surface->geometry.x ||
+ window->y != surface->geometry.y) {
+ values[0] = surface->geometry.x;
+ values[1] = surface->geometry.y;
+ mask = XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y;
- sx = (int) sxf;
- sy = (int) syf;
-
- if (old_sx == sx && old_sy == sy)
- return;
-
- values[0] = sx;
- values[1] = sy;
- mask = XCB_CONFIG_WINDOW_X | XCB_CONFIG_WINDOW_Y;
-
- xcb_configure_window(wm->conn, window->frame_id, mask, values);
- xcb_flush(wm->conn);
-
- old_sx = sx;
- old_sy = sy;
+ xcb_configure_window(wm->conn, window->frame_id, mask, values);
+ xcb_flush(wm->conn);
+ }
}
#define ICCCM_WITHDRAWN_STATE 0
commit 898e168bfd6c01b3613ac71c2f299c503c695f03
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 22 16:18:17 2013 -0700
xwm: Fix configure notify handler
We only get configure notify for toplevel (frame or override-redirect window)
and those are the cases where we want to update window->x/y. The way the
code worked, we'd exit immeidately in those cases and window->x/y would
not be updated.
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index d63b042..b4a1b7a 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -574,17 +574,10 @@ weston_wm_handle_configure_notify(struct weston_wm *wm, xcb_generic_event_t *eve
configure_notify->x, configure_notify->y,
configure_notify->width, configure_notify->height);
- if (our_resource(wm, configure_notify->window))
- return;
-
window = hash_table_lookup(wm->window_hash, configure_notify->window);
- /* resize falls here */
- if (configure_notify->window != window->id)
- return;
-
weston_wm_window_get_child_position(window, &x, &y);
- window->x = configure_notify->x - x;
- window->y = configure_notify->y - y;
+ window->x = configure_notify->x;
+ window->y = configure_notify->y;
}
static void
commit 721f1f070bf9151df8aeb7ca86b6f2e664b01738
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 21 22:14:58 2013 -0700
xwm: Set _NET_WM_CM_S0 instead of relying on the xwayland module to do it
Not sure why I made xwayland claim this selection, seem a little
awkward in retrospect.
diff --git a/src/xwayland/window-manager.c b/src/xwayland/window-manager.c
index 257c108..d63b042 100644
--- a/src/xwayland/window-manager.c
+++ b/src/xwayland/window-manager.c
@@ -1534,6 +1534,7 @@ weston_wm_get_resources(struct weston_wm *wm)
{ "WM_STATE", F(atom.wm_state) },
{ "WM_S0", F(atom.wm_s0) },
{ "WM_CLIENT_MACHINE", F(atom.wm_client_machine) },
+ { "_NET_WM_CM_S0", F(atom.net_wm_cm_s0) },
{ "_NET_WM_NAME", F(atom.net_wm_name) },
{ "_NET_WM_PID", F(atom.net_wm_pid) },
{ "_NET_WM_ICON", F(atom.net_wm_icon) },
@@ -1689,6 +1690,11 @@ weston_wm_create_wm_window(struct weston_wm *wm)
wm->wm_window,
wm->atom.wm_s0,
XCB_TIME_CURRENT_TIME);
+
+ xcb_set_selection_owner(wm->conn,
+ wm->wm_window,
+ wm->atom.net_wm_cm_s0,
+ XCB_TIME_CURRENT_TIME);
}
struct weston_wm *
diff --git a/src/xwayland/xwayland.h b/src/xwayland/xwayland.h
index c68a517..21b499e 100644
--- a/src/xwayland/xwayland.h
+++ b/src/xwayland/xwayland.h
@@ -85,6 +85,7 @@ struct weston_wm {
xcb_atom_t wm_state;
xcb_atom_t wm_s0;
xcb_atom_t wm_client_machine;
+ xcb_atom_t net_wm_cm_s0;
xcb_atom_t net_wm_name;
xcb_atom_t net_wm_pid;
xcb_atom_t net_wm_icon;
commit 51175ca057d2419a78bddd76058600522d3982e3
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 22 11:30:20 2013 -0700
Bump version to 1.2.1
diff --git a/configure.ac b/configure.ac
index 156237f..20c4ba8 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,6 +1,6 @@
m4_define([weston_major_version], [1])
m4_define([weston_minor_version], [2])
-m4_define([weston_micro_version], [0])
+m4_define([weston_micro_version], [1])
m4_define([weston_version],
[weston_major_version.weston_minor_version.weston_micro_version])
commit fa9bfcc8de0ec2ea6675c55c1984b979c754ccc2
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Thu Aug 22 12:16:51 2013 -0700
simple-egl: Handle missing EGL_EXT_buffer_age better
Including src/weston-egl-ext.h breaks distcheck, so lets just copy the
one EGL_EXT_buffer_age into simple-egl.c.
diff --git a/clients/simple-egl.c b/clients/simple-egl.c
index a557fca..1fd4137 100644
--- a/clients/simple-egl.c
+++ b/clients/simple-egl.c
@@ -38,13 +38,16 @@
#include <EGL/egl.h>
#include <EGL/eglext.h>
-#include <src/weston-egl-ext.h>
-
#ifndef EGL_EXT_swap_buffers_with_damage
#define EGL_EXT_swap_buffers_with_damage 1
typedef EGLBoolean (EGLAPIENTRYP PFNEGLSWAPBUFFERSWITHDAMAGEEXTPROC)(EGLDisplay dpy, EGLSurface surface, EGLint *rects, EGLint n_rects);
#endif
+#ifndef EGL_EXT_buffer_age
+#define EGL_EXT_buffer_age 1
+#define EGL_BUFFER_AGE_EXT 0x313D
+#endif
+
struct window;
struct seat;
commit 6d345d30ce9e9dfe78b6f96f121eecbe89f75be3
Author: Maksim Melnikau <maxposedon@gmail.com>
Date: Wed Aug 14 22:33:10 2013 +0300
add [xwayland] path weston.ini option
It sets the path to the xserver to run.
Signed-off-by: Maksim Melnikau <maxposedon@gmail.com>
diff --git a/man/weston.ini.man b/man/weston.ini.man
index 9c22b3f..79743f0 100644
--- a/man/weston.ini.man
+++ b/man/weston.ini.man
@@ -77,6 +77,7 @@ The section headers are:
.BR "input-method " "Onscreen keyboard input"
.BR "keyboard " "Keyboard layouts"
.BR "terminal " "Terminal application options"
+.BR "xwayland " "XWayland options"
.fi
.RE
.PP
@@ -357,6 +358,12 @@ sets the size of the terminal font (unsigned integer).
The terminal shell (string). Sets the $TERM variable.
.RE
.RE
+.SH "XWAYLAND SECTION"
+.TP 7
+.BI "path=" "/usr/bin/Xorg"
+sets the path to the xserver to run (string).
+.RE
+.RE
.SH "SEE ALSO"
.BR weston (1),
.BR weston-launch (1),
diff --git a/src/xwayland/launcher.c b/src/xwayland/launcher.c
index 3228b53..32e04e9 100644
--- a/src/xwayland/launcher.c
+++ b/src/xwayland/launcher.c
@@ -42,6 +42,8 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data)
struct weston_xserver *wxs = data;
char display[8], s[8];
int sv[2], client_fd;
+ char *xserver = NULL;
+ struct weston_config_section *section;
if (socketpair(AF_UNIX, SOCK_STREAM | SOCK_CLOEXEC, 0, sv) < 0) {
weston_log("socketpair failed\n");
@@ -62,8 +64,11 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data)
snprintf(display, sizeof display, ":%d", wxs->display);
- if (execl(XSERVER_PATH,
- XSERVER_PATH,
+ section = weston_config_get_section(wxs->compositor->config, "xwayland", NULL, NULL);
+ weston_config_section_get_string(section, "path", &xserver, XSERVER_PATH);
+
+ if (execl(xserver,
+ xserver,
display,
"-wayland",
"-rootless",
@@ -72,6 +77,7 @@ weston_xserver_handle_event(int listen_fd, uint32_t mask, void *data)
"-terminate",
NULL) < 0)
weston_log("exec failed: %m\n");
+ free(xserver);
_exit(EXIT_FAILURE);
default:
commit 122a93850784e5fe14a66753f5e3e5b3d92c3d85
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 21 22:14:14 2013 -0700
compositor-drm: Zero out create_arg when creating dumb framebuffers
The create_arg struct has a flags member that we didn't properly set to 0.
diff --git a/src/compositor-drm.c b/src/compositor-drm.c
index 88b87f8..0600ceb 100644
--- a/src/compositor-drm.c
+++ b/src/compositor-drm.c
@@ -238,6 +238,7 @@ drm_fb_create_dumb(struct drm_compositor *ec, unsigned width, unsigned height)
if (!fb)
return NULL;
+ memset(&create_arg, 0, sizeof create_arg);
create_arg.bpp = 32;
create_arg.width = width;
create_arg.height = height;
@@ -256,7 +257,7 @@ drm_fb_create_dumb(struct drm_compositor *ec, unsigned width, unsigned height)
if (ret)
goto err_bo;
- memset(&map_arg, 0, sizeof(map_arg));
+ memset(&map_arg, 0, sizeof map_arg);
map_arg.handle = fb->handle;
ret = drmIoctl(fb->fd, DRM_IOCTL_MODE_MAP_DUMB, &map_arg);
if (ret)
commit db8c5c89707c71a2498495bd18b2058b74f9ea45
Author: Kristian Høgsberg <krh@bitplanet.net>
Date: Wed Aug 21 15:44:57 2013 -0700
configure.ac: Add AC_SYS_LARGEFILE for mmap()ing dumb GEM buffers
We're mmap()ing buffers with 64 bit offsets coming from the
DRM_IOCTL_MODE_MAP_DUMB ioctl and need to make sure mmap accepts
those.
diff --git a/configure.ac b/configure.ac
index e305ab0..156237f 100644
--- a/configure.ac
+++ b/configure.ac
@@ -19,6 +19,7 @@ AC_SUBST([WESTON_VERSION], [weston_version])
AC_CONFIG_HEADERS([config.h])
AC_USE_SYSTEM_EXTENSIONS
+AC_SYS_LARGEFILE
AM_INIT_AUTOMAKE([1.11 parallel-tests foreign no-dist-gzip dist-xz color-tests])
commit 61a13715bb4024da2836f50390e15e5002844d31
Author: Hardening <rdp.effort@gmail.com>
Date: Sat Aug 17 00:30:31 2013 +0200
set RDP output enabled by default (stable 1.2)
This patch fixes a bug found by Marek Romanowic: the RDP peer output must
be enabled by default, or we have to unfocus/focus the RDP client window to
have disable/enable output messages sent (and finally receive updates).
diff --git a/src/compositor-rdp.c b/src/compositor-rdp.c
index 33ec77d..99dc487 100644
--- a/src/compositor-rdp.c
+++ b/src/compositor-rdp.c
@@ -572,7 +572,7 @@ static void
rdp_peer_context_new(freerdp_peer* client, RdpPeerContext* context)
{
context->item.peer = client;
- context->item.flags = 0;
+ context->item.flags = RDP_PEER_OUTPUT_ENABLED;
context->rfx_context = rfx_context_new();
context->rfx_context->mode = RLGR3;
commit e78734740e8d87d3ef297b0b2cb8929c295b9409
Author: Daiki Ueno <ueno@gnu.org>
Date: Tue Aug 20 09:56:52 2013 +0200
autotools: Don't use wayland-scanner.m4
diff --git a/Makefile.am b/Makefile.am
index 88428de..e9ecc38 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -6,4 +6,4 @@ SUBDIRS = shared src clients data protocol tests $(wcap_subdir) man
DISTCHECK_CONFIGURE_FLAGS = --disable-setuid-install
-EXTRA_DIST = weston.ini
+EXTRA_DIST = weston.ini wayland-scanner.mk
diff --git a/clients/Makefile.am b/clients/Makefile.am
index 1f7d9dc..87b3a0e 100644
--- a/clients/Makefile.am
+++ b/clients/Makefile.am
@@ -254,7 +254,8 @@ endif
endif
-@wayland_scanner_rules@
+wayland_protocoldir = $(top_srcdir)/protocol
+include $(top_srcdir)/wayland-scanner.mk
if HAVE_POPPLER
poppler_programs = weston-view
diff --git a/configure.ac b/configure.ac
index fab0b48..e305ab0 100644
--- a/configure.ac
+++ b/configure.ac
@@ -423,9 +423,8 @@ if test "x$have_lcms" = xyes; then
fi
AM_CONDITIONAL(HAVE_LCMS, [test "x$have_lcms" = xyes])
-m4_ifndef([WAYLAND_SCANNER_RULES],
- [m4_fatal([WAYLAND_SCANNER_RULES not found. Point ACLOCAL to wayland-scanner.m4 before running autoconf/autogen])])
-WAYLAND_SCANNER_RULES(['$(top_srcdir)/protocol'])
+AC_PATH_PROG([wayland_scanner], [wayland-scanner],
+ [AC_MSG_ERROR("wayland-scanner is needed to compile weston")])
AC_CONFIG_FILES([Makefile
shared/Makefile
diff --git a/src/Makefile.am b/src/Makefile.am
index d06e773..05b22d3 100644
--- a/src/Makefile.am
+++ b/src/Makefile.am
@@ -312,4 +312,5 @@ BUILT_SOURCES = \
CLEANFILES = $(BUILT_SOURCES)
-@wayland_scanner_rules@
+wayland_protocoldir = $(top_srcdir)/protocol
+include $(top_srcdir)/wayland-scanner.mk
diff --git a/src/xwayland/Makefile.am b/src/xwayland/Makefile.am
index 82ad53d..d4a7988 100644
--- a/src/xwayland/Makefile.am
+++ b/src/xwayland/Makefile.am
@@ -35,4 +35,5 @@ BUILT_SOURCES = \
CLEANFILES = $(BUILT_SOURCES)
-@wayland_scanner_rules@
+wayland_protocoldir = $(top_srcdir)/protocol
+include $(top_srcdir)/wayland-scanner.mk
diff --git a/tests/Makefile.am b/tests/Makefile.am
index d4aa909..82bf630 100644
--- a/tests/Makefile.am
+++ b/tests/Makefile.am
@@ -139,4 +139,5 @@ BUILT_SOURCES = \
CLEANFILES = $(BUILT_SOURCES)
-@wayland_scanner_rules@
+wayland_protocoldir = $(top_srcdir)/protocol
+include $(top_srcdir)/wayland-scanner.mk
diff --git a/wayland-scanner.mk b/wayland-scanner.mk
new file mode 100644
index 0000000..0a72062
--- /dev/null
+++ b/wayland-scanner.mk
@@ -0,0 +1,8 @@
+%-protocol.c : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) code < $< > $@
+
+%-server-protocol.h : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) server-header < $< > $@
+
+%-client-protocol.h : $(wayland_protocoldir)/%.xml
+ $(AM_V_GEN)$(wayland_scanner) client-header < $< > $@
commit 2629672f778be4e0dc18c090b49035e43585f13e
Author: Rusty Lynch <rusty.lynch@intel.com>
Date: Thu Aug 15 09:10:08 2013 -0700
Add touch support for wl_shell_surface_move
diff --git a/clients/calibrator.c b/clients/calibrator.c
index 781475e..783cdec 100644
--- a/clients/calibrator.c
+++ b/clients/calibrator.c
@@ -163,8 +163,8 @@ button_handler(struct widget *widget,
}
static void
-touch_handler(struct widget *widget, uint32_t serial, uint32_t time,
- int32_t id, float x, float y, void *data)
+touch_handler(struct widget *widget, struct input *input, uint32_t serial,
+ uint32_t time, int32_t id, float x, float y, void *data)
{
struct calibrator *calibrator = data;
diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c
index b2082f3..82fe9b0 100644
--- a/clients/desktop-shell.c
+++ b/clients/desktop-shell.c
@@ -322,8 +322,8 @@ panel_launcher_button_handler(struct widget *widget,
}
static void
-panel_launcher_touch_down_handler(struct widget *widget, uint32_t serial,
- uint32_t time, int32_t id,
+panel_launcher_touch_down_handler(struct widget *widget, struct input *input,
+ uint32_t serial, uint32_t time, int32_t id,
float x, float y, void *data)
{
struct panel_launcher *launcher;
@@ -334,8 +334,9 @@ panel_launcher_touch_down_handler(struct widget *widget, uint32_t serial,
}
static void
-panel_launcher_touch_up_handler(struct widget *widget, uint32_t serial,
- uint32_t time, int32_t id, void *data)
+panel_launcher_touch_up_handler(struct widget *widget, struct input *input,
+ uint32_t serial, uint32_t time, int32_t id,
+ void *data)
{
struct panel_launcher *launcher;
diff --git a/clients/flower.c b/clients/flower.c
index b31d513..825c833 100644
--- a/clients/flower.c
+++ b/clients/flower.c
@@ -152,6 +152,16 @@ button_handler(struct widget *widget,
}
}
+static void
+touch_down_handler(struct widget *widget, struct input *input,
+ uint32_t serial, uint32_t time, int32_t id,
+ float x, float y, void *data)
+{
+ struct flower *flower = data;
+ window_touch_move(flower->window, input,
+ display_get_serial(flower->display));
+}
+
int main(int argc, char *argv[])
{
struct flower flower;
@@ -178,6 +188,7 @@ int main(int argc, char *argv[])
widget_set_redraw_handler(flower.widget, redraw_handler);
widget_set_button_handler(flower.widget, button_handler);
widget_set_default_cursor(flower.widget, CURSOR_HAND1);
+ widget_set_touch_down_handler(flower.widget, touch_down_handler);
window_schedule_resize(flower.window, flower.width, flower.height);
diff --git a/clients/fullscreen.c b/clients/fullscreen.c
index bea1a15..72e2c81 100644
--- a/clients/fullscreen.c
+++ b/clients/fullscreen.c
@@ -278,6 +278,16 @@ button_handler(struct widget *widget,
}
Reply to: