weston: Changes to 'upstream-experimental'
configure.ac | 10 +- libweston-desktop/wl-shell.c |4 ++-- libweston-desktop/xdg-shell-v5.c |8 +--- libweston-desktop/xdg-shell-v6.c |8 +--- 4 files changed, 17 insertions(+), 13 deletions(-) New commits: commit a08dff5bce52804850595a5ff968336a60574f4f Author: Bryce HarringtonDate: Tue Sep 20 12:22:46 2016 -0700 configure.ac: bump to version 1.12.0 for the official release diff --git a/configure.ac b/configure.ac index bd59725..619d3f6 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ m4_define([weston_major_version], [1]) -m4_define([weston_minor_version], [11]) -m4_define([weston_micro_version], [94]) +m4_define([weston_minor_version], [12]) +m4_define([weston_micro_version], [0]) m4_define([weston_version], [weston_major_version.weston_minor_version.weston_micro_version]) m4_define([libweston_major_version], [1]) -m4_define([libweston_minor_version], [11]) -m4_define([libweston_patch_version], [94]) +m4_define([libweston_minor_version], [12]) +m4_define([libweston_patch_version], [0]) AC_PREREQ([2.64]) AC_INIT([weston], @@ -14,7 +14,7 @@ AC_INIT([weston], [weston], [http://wayland.freedesktop.org]) -WAYLAND_PREREQ_VERSION="1.11.91" +WAYLAND_PREREQ_VERSION="1.12.0" AC_SUBST([WESTON_VERSION_MAJOR], [weston_major_version]) AC_SUBST([WESTON_VERSION_MINOR], [weston_minor_version]) commit a56b053ee154fd8c5b6782fa120ddc045e4e0147 Author: Quentin Glidic Date: Tue Sep 13 10:05:58 2016 +0200 libweston-desktop: Fix configure event for already well-sized surfaces Even if the surface size is already correct, we need to store the configured size in case some other state change triggers a configure event. Signed-off-by: Quentin Glidic Reviewed-by: Arnaud Vrac diff --git a/libweston-desktop/wl-shell.c b/libweston-desktop/wl-shell.c index 74ce473..ded69f7 100644 --- a/libweston-desktop/wl-shell.c +++ b/libweston-desktop/wl-shell.c @@ -67,8 +67,8 @@ weston_desktop_wl_shell_surface_set_size(struct weston_desktop_surface *dsurface struct weston_surface *wsurface = weston_desktop_surface_get_surface(surface->surface); - if (wsurface->width == width && wsurface->height == height) - return; + if ((wsurface->width == width && wsurface->height == height) || + (width == 0 && height == 0)) wl_shell_surface_send_configure(surface->resource, WL_SHELL_SURFACE_RESIZE_NONE, diff --git a/libweston-desktop/xdg-shell-v5.c b/libweston-desktop/xdg-shell-v5.c index 83e5d30..14216b0 100644 --- a/libweston-desktop/xdg-shell-v5.c +++ b/libweston-desktop/xdg-shell-v5.c @@ -192,11 +192,13 @@ weston_desktop_xdg_surface_set_size(struct weston_desktop_surface *dsurface, struct weston_desktop_xdg_surface *surface = user_data; struct weston_surface *wsurface = weston_desktop_surface_get_surface(surface->surface); - if (wsurface->width == width && wsurface->height == height) - return; - surface->requested_size.width = width; surface->requested_size.height = height; + + if ((wsurface->width == width && wsurface->height == height) || + (width == 0 && height == 0)) + return; + weston_desktop_xdg_surface_schedule_configure(surface); } diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c index d4d0112..2afce81 100644 --- a/libweston-desktop/xdg-shell-v6.c +++ b/libweston-desktop/xdg-shell-v6.c @@ -607,11 +607,13 @@ weston_desktop_xdg_toplevel_set_size(struct weston_desktop_surface *dsurface, struct weston_surface *wsurface = weston_desktop_surface_get_surface(toplevel->base.desktop_surface); - if (wsurface->width == width && wsurface->height == height) - return; - toplevel->requested_size.width = width; toplevel->requested_size.height = height; + + if ((wsurface->width == width && wsurface->height == height) || + (width == 0 && height == 0)) + return; + weston_desktop_xdg_surface_schedule_configure(>base); }
weston: Changes to 'upstream-experimental'
clients/weston-simple-im.c |6 +- configure.ac |6 +- desktop-shell/shell.c| 79 +-- libweston-desktop/xdg-shell-v5.c | 42 +++- libweston-desktop/xdg-shell-v6.c | 45 -- libweston-desktop/xwayland.c |6 -- libweston/compositor-drm.c |2 libweston/compositor-wayland.c |2 libweston/compositor.h |7 --- releasing.txt|4 - shared/config-parser.c |1 11 files changed, 137 insertions(+), 63 deletions(-) New commits: commit 870f384d0eb364ba049a73f682cef981704c3385 Author: Bryce HarringtonDate: Tue Sep 13 12:18:23 2016 -0700 configure.ac: bump to version 1.11.94 for the RC2 release diff --git a/configure.ac b/configure.ac index 076b336..bd59725 100644 --- a/configure.ac +++ b/configure.ac @@ -1,11 +1,11 @@ m4_define([weston_major_version], [1]) m4_define([weston_minor_version], [11]) -m4_define([weston_micro_version], [93]) +m4_define([weston_micro_version], [94]) m4_define([weston_version], [weston_major_version.weston_minor_version.weston_micro_version]) m4_define([libweston_major_version], [1]) m4_define([libweston_minor_version], [11]) -m4_define([libweston_patch_version], [93]) +m4_define([libweston_patch_version], [94]) AC_PREREQ([2.64]) AC_INIT([weston], commit 0abf8903cbdc95d1ddc464476efe0db4fd710f06 Author: Quentin Glidic Date: Sun Sep 11 11:34:47 2016 +0200 libweston-desktop/xdg_shell_v6: Raise errors on not-yet-possible requests These requests need a mapped surface, which can only happen after the initial configure event. Signed-off-by: Quentin Glidic Reviewed-by: Jonas Ådahl diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c index fbf3e69..d4d0112 100644 --- a/libweston-desktop/xdg-shell-v6.c +++ b/libweston-desktop/xdg-shell-v6.c @@ -349,6 +349,13 @@ weston_desktop_xdg_toplevel_protocol_show_window_menu(struct wl_client *wl_clien struct weston_desktop_xdg_toplevel *toplevel = weston_desktop_surface_get_implementation_data(dsurface); + if (!toplevel->base.configured) { + wl_resource_post_error(toplevel->resource, + ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED, + "Surface has not been configured yet"); + return; + } + weston_desktop_api_show_window_menu(toplevel->base.desktop, dsurface, seat, x, y); } @@ -366,6 +373,13 @@ weston_desktop_xdg_toplevel_protocol_move(struct wl_client *wl_client, struct weston_desktop_xdg_toplevel *toplevel = weston_desktop_surface_get_implementation_data(dsurface); + if (!toplevel->base.configured) { + wl_resource_post_error(toplevel->resource, + ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED, + "Surface has not been configured yet"); + return; + } + weston_desktop_api_move(toplevel->base.desktop, dsurface, seat, serial); } @@ -383,6 +397,13 @@ weston_desktop_xdg_toplevel_protocol_resize(struct wl_client *wl_client, struct weston_desktop_xdg_toplevel *toplevel = weston_desktop_surface_get_implementation_data(dsurface); + if (!toplevel->base.configured) { + wl_resource_post_error(toplevel->resource, + ZXDG_SURFACE_V6_ERROR_NOT_CONSTRUCTED, + "Surface has not been configured yet"); + return; + } + weston_desktop_api_resize(toplevel->base.desktop, dsurface, seat, serial, edges); } commit 3d7e60798a23026d9397d5cff56127917998e78a Author: Quentin Glidic Date: Sun Sep 11 11:29:23 2016 +0200 libweston-desktop/xdg_shell_v6: Add surface as needed Signed-off-by: Quentin Glidic Reviewed-by: Jonas Ådahl diff --git a/libweston-desktop/xdg-shell-v6.c b/libweston-desktop/xdg-shell-v6.c index 70e9132..fbf3e69 100644 --- a/libweston-desktop/xdg-shell-v6.c +++ b/libweston-desktop/xdg-shell-v6.c @@ -284,6 +284,18 @@ static void weston_desktop_xdg_surface_schedule_configure(struct weston_desktop_xdg_surface *surface); static void +weston_desktop_xdg_toplevel_ensure_added(struct weston_desktop_xdg_toplevel *toplevel) +{ + if (toplevel->added) + return; + + weston_desktop_api_surface_added(toplevel->base.desktop, +toplevel->base.desktop_surface); + weston_desktop_xdg_surface_schedule_configure(>base); +
weston: Changes to 'upstream-experimental'
.gitignore|1 Makefile.am | 504 +- README| 146 clients/clickdot.c|1 clients/cliptest.c|3 clients/confine.c | 531 +++ clients/desktop-shell.c | 70 clients/dnd.c |1 clients/editor.c |4 clients/eventdemo.c | 50 clients/flower.c |2 clients/fullscreen.c |7 clients/ivi-shell-user-interface.c| 43 clients/keyboard.c| 44 clients/multi-resource.c | 26 clients/nested-client.c |1 clients/nested.c | 14 clients/presentation-shm.c| 75 clients/resizor.c | 159 clients/scaler.c | 46 clients/screenshot.c | 16 clients/simple-damage.c | 130 clients/simple-dmabuf-intel.c | 123 clients/simple-dmabuf-v4l.c | 126 clients/simple-egl.c | 124 clients/simple-shm.c | 108 clients/simple-touch.c|3 clients/smoke.c |2 clients/stacking.c|1 clients/subsurfaces.c |4 clients/terminal.c| 75 clients/weston-info.c | 55 clients/weston-simple-im.c|9 clients/window.c | 688 +++- clients/window.h | 78 compositor/cms-colord.c | 567 +++ compositor/cms-helper.c | 136 compositor/cms-helper.h | 75 compositor/cms-static.c | 119 compositor/main.c | 1791 ++ compositor/screen-share.c | 1129 ++ compositor/systemd-notify.c | 165 compositor/text-backend.c | 1085 ++ compositor/weston-screenshooter.c | 192 + compositor/weston.desktop |5 compositor/weston.h | 73 compositor/weston.pc.in | 12 compositor/xwayland.c | 209 + configure.ac | 212 - data/COPYING | 18 data/icon_editor.png |binary data/icon_flower.png |binary data/icon_terminal.png|binary data/icons.svg| 1012 + desktop-shell/exposay.c | 14 desktop-shell/input-panel.c | 19 desktop-shell/shell.c | 3206 -- desktop-shell/shell.h | 16 fullscreen-shell/fullscreen-shell.c | 117 ivi-shell/hmi-controller.c| 221 - ivi-shell/input-panel-ivi.c | 27 ivi-shell/ivi-layout-export.h | 368 -- ivi-shell/ivi-layout-private.h| 72 ivi-shell/ivi-layout-shell.h | 60 ivi-shell/ivi-layout-transition.c | 45 ivi-shell/ivi-layout.c| 1324 +-- ivi-shell/ivi-shell.c | 109 ivi-shell/ivi-shell.h | 15 libweston-desktop/client.c| 212 + libweston-desktop/internal.h | 236 + libweston-desktop/libweston-desktop.c | 244 + libweston-desktop/libweston-desktop.h | 166 libweston-desktop/libweston-desktop.pc.in | 11 libweston-desktop/seat.c | 368 ++ libweston-desktop/surface.c | 810 libweston-desktop/wl-shell.c | 466 ++ libweston-desktop/xdg-shell-v5.c | 798 libweston-desktop/xdg-shell-v6.c | 1237 +++ libweston-desktop/xwayland.c | 377 ++ libweston/animation.c | 502 ++ libweston/bindings.c | 580 +++ libweston/clipboard.c | 307 + libweston/compositor-drm.c| 3285 +++ libweston/compositor-drm.h| 138 libweston/compositor-fbdev.c | 784 libweston/compositor-fbdev.h | 63 libweston/compositor-headless.c | 274 + libweston/compositor-headless.h | 56 libweston/compositor-rdp.c| 1346 +++ libweston/compositor-rdp.h| 54 libweston/compositor-wayland.c| 2361 + libweston/compositor-wayland.h| 63 libweston/compositor-x11.c| 1745 ++ libweston/compositor-x11.h| 64 libweston/compositor.c| 5119
weston: Changes to 'upstream-experimental'
.gitignore | 15 COPYING | 44 Makefile.am | 682 +-- README | 149 + clients/calibrator.c| 38 clients/clickdot.c | 34 clients/cliptest.c | 33 clients/desktop-shell.c | 164 - clients/dnd.c | 209 +- clients/editor.c| 326 ++- clients/eventdemo.c | 99 - clients/flower.c| 39 clients/fullscreen.c| 97 - clients/gears.c | 37 clients/glmatrix.c | 1062 clients/image.c | 39 clients/ivi-shell-user-interface.c | 89 - clients/keyboard.c | 221 +- clients/matrix3.xpm | 692 --- clients/multi-resource.c| 35 clients/nested-client.c | 46 clients/nested.c| 38 clients/presentation-shm.c | 96 - clients/resizor.c | 33 clients/scaler.c| 33 clients/screenshot.c| 56 clients/simple-damage.c | 178 +- clients/simple-dmabuf-intel.c | 588 ++ clients/simple-dmabuf-v4l.c | 944 ++ clients/simple-egl.c| 50 clients/simple-shm.c| 57 clients/simple-touch.c | 38 clients/smoke.c | 35 clients/stacking.c | 38 clients/subsurfaces.c | 51 clients/terminal.c | 163 + clients/transformed.c | 37 clients/weston-info.c | 74 clients/weston-simple-im.c | 163 - clients/window.c| 556 -- clients/window.h| 89 - clients/wscreensaver-glue.c | 148 - clients/wscreensaver-glue.h | 120 - clients/wscreensaver.c | 348 --- clients/wscreensaver.h | 63 configure.ac| 172 + data/wayland.svg| 36 desktop-shell/exposay.c | 109 - desktop-shell/input-panel.c | 58 desktop-shell/shell.c | 1506 - desktop-shell/shell.h | 54 doc/doxygen/devtools.dox| 51 doc/doxygen/tooldev.doxygen.in | 12 doc/doxygen/tools.dox | 31 doc/doxygen/tools.doxygen.in| 11 doc/doxygen/tools_arch_new.gv | 85 doc/doxygen/tools_arch_old.gv | 53 fullscreen-shell/fullscreen-shell.c | 141 - ivi-shell/README|2 ivi-shell/hmi-controller.c | 746 +--- ivi-shell/input-panel-ivi.c | 57 ivi-shell/ivi-layout-export.h | 72 ivi-shell/ivi-layout-private.h | 52 ivi-shell/ivi-layout-transition.c | 87 ivi-shell/ivi-layout.c | 1386 +++ ivi-shell/ivi-shell.c | 234 +- ivi-shell/ivi-shell.h | 37 ivi-shell/weston.ini.in | 43 man/weston.ini.man | 50 man/weston.man | 52 notes.txt | 10 protocol/desktop-shell.xml | 138 - protocol/fullscreen-shell.xml | 206 -- protocol/input-method.xml | 273 --- protocol/ivi-application.xml| 35 protocol/ivi-hmi-controller.xml | 33 protocol/presentation_timing.xml| 38 protocol/scaler.xml | 38 protocol/screenshooter.xml | 12 protocol/text.xml | 346 --- protocol/wayland-test.xml | 62 protocol/weston-desktop-shell.xml | 135 + protocol/weston-screenshooter.xml | 12 protocol/weston-test.xml| 126 + protocol/workspaces.xml | 27 protocol/xdg-shell.xml
weston: Changes to 'upstream-experimental'
Makefile.am |3 +-- configure.ac | 10 +- releasing.txt| 19 +-- src/input.c |9 +++-- src/weston-egl-ext.h | 28 +++- tests/weston-test.c |1 + 6 files changed, 50 insertions(+), 20 deletions(-) New commits: commit dbd8606a2a9425605102db9e722289934ab7b8b4 Author: Bryce Harrington br...@osg.samsung.com Date: Fri Feb 13 20:47:09 2015 -0800 configure.ac: bump to version 1.7.0 for release diff --git a/configure.ac b/configure.ac index e5f395f..b722441 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ m4_define([weston_major_version], [1]) -m4_define([weston_minor_version], [6]) -m4_define([weston_micro_version], [93]) +m4_define([weston_minor_version], [7]) +m4_define([weston_micro_version], [0]) m4_define([weston_version], [weston_major_version.weston_minor_version.weston_micro_version]) @@ -59,7 +59,7 @@ AC_CHECK_HEADERS([execinfo.h]) AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate]) -COMPOSITOR_MODULES=wayland-server = 1.6.93 pixman-1 = 0.25.2 +COMPOSITOR_MODULES=wayland-server = 1.7.0 pixman-1 = 0.25.2 AC_ARG_ENABLE(egl, [ --disable-egl],, enable_egl=yes) @@ -292,7 +292,7 @@ AC_SUBST(JPEG_LIBS) PKG_CHECK_MODULES(CAIRO, [cairo]) -PKG_CHECK_MODULES(TEST_CLIENT, [wayland-client = 1.6.93]) +PKG_CHECK_MODULES(TEST_CLIENT, [wayland-client = 1.7.0]) AC_ARG_ENABLE(simple-clients, AS_HELP_STRING([--disable-simple-clients], commit 8a88cec7d4f01ea0698f3a4f19ae266d1526a13a Author: Bryce Harrington br...@osg.samsung.com Date: Fri Feb 13 20:46:41 2015 -0800 releasing: Note that Xwayland installation required only for Weston releases diff --git a/releasing.txt b/releasing.txt index 4ea210b..8188ddf 100644 --- a/releasing.txt +++ b/releasing.txt @@ -15,10 +15,10 @@ To make a release of Weston and/or Wayland, follow these steps. $ git commit configure.ac -m configure.ac: bump to version x.y.z for the xxx release $ git push - 2. Install Xwayland, either from your distro or manually (see - http://wayland.freedesktop.org/building.html). If you install it - to a location other than /usr/bin/Xwayland, specify this in the - following env var: + 2. For Weston releases, install Xwayland, either from your distro or + manually (see http://wayland.freedesktop.org/building.html). If + you install it to a location other than /usr/bin/Xwayland, specify + this in the following env var: export DISTCHECK_CONFIGURE_FLAGS=--with-xserver-path=your-Xwayland-path commit ad1218ffe6968faa94bc261c9cc71f030e2ba205 Author: Daniel Stone dani...@collabora.com Date: Wed Feb 11 18:15:18 2015 + weston-egl-ext: Define EGL tokens harder for old Mesa Older versions of Mesa provided header definitions for the EGL_WL_bind_wayland_display extension, but an earlier version of the extension which only provided the (un)bind entrypoints, and not QueryWaylandBuffer. Detect this half-provision and make sure we export the QueryWaylandBuffer definitions as well. Fixes build failure with EGL on Ubuntu 12.04. Signed-off-by: Daniel Stone dani...@collabora.com Reviewed-by: Bryce Harrington br...@osg.samsung.com Reviewed-by: Pekka Paalanen ppaala...@gmail.com diff --git a/src/weston-egl-ext.h b/src/weston-egl-ext.h index 4888323..145322b 100644 --- a/src/weston-egl-ext.h +++ b/src/weston-egl-ext.h @@ -33,6 +33,29 @@ #ifndef EGL_WL_bind_wayland_display #define EGL_WL_bind_wayland_display 1 +struct wl_display; + +#ifdef EGL_EGLEXT_PROTOTYPES +EGLAPI EGLBoolean EGLAPIENTRY eglBindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display); +EGLAPI EGLBoolean EGLAPIENTRY eglUnbindWaylandDisplayWL(EGLDisplay dpy, struct wl_display *display); +#endif +typedef EGLBoolean (EGLAPIENTRYP PFNEGLBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display); +typedef EGLBoolean (EGLAPIENTRYP PFNEGLUNBINDWAYLANDDISPLAYWL) (EGLDisplay dpy, struct wl_display *display); +#endif + +/* + * This is a little different to the tests shipped with EGL implementations, + * which wrap the entire thing in #ifndef EGL_WL_bind_wayland_display, then go + * on to define both BindWaylandDisplay and QueryWaylandBuffer. + * + * Unfortunately, some implementations (particularly the version of Mesa shipped + * in Ubuntu 12.04) define EGL_WL_bind_wayland_display, but then only provide + * prototypes for (Un)BindWaylandDisplay, completely omitting + * QueryWaylandBuffer. + * + * Detect this, and provide our own definitions if necessary. + */ +#ifndef EGL_WAYLAND_BUFFER_WL #define EGL_WAYLAND_BUFFER_WL 0x31D5 /* eglCreateImageKHR target */ #define EGL_WAYLAND_PLANE_WL 0x31D6 /* eglCreateImageKHR target */ @@ -41,15 +64,10 @@ #define EGL_TEXTURE_Y_XUXV_WL 0x31D9 #define EGL_TEXTURE_EXTERNAL_WL 0x31DA -struct
weston: Changes to 'upstream-experimental'
Rebased ref, commits from common ancestor: commit 82d19aabc87a3040edb96c0bda0ef27c4edb26b8 Author: Bryce Harrington br...@osg.samsung.com Date: Fri Feb 6 18:03:43 2015 -0800 configure.ac bump to version 1.6.93 for the rc2 release. diff --git a/configure.ac b/configure.ac index ec7739d..1db9f79 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ m4_define([weston_major_version], [1]) m4_define([weston_minor_version], [6]) -m4_define([weston_micro_version], [92]) +m4_define([weston_micro_version], [93]) m4_define([weston_version], [weston_major_version.weston_minor_version.weston_micro_version]) @@ -59,7 +59,7 @@ AC_CHECK_HEADERS([execinfo.h]) AC_CHECK_FUNCS([mkostemp strchrnul initgroups posix_fallocate]) -COMPOSITOR_MODULES=wayland-server = 1.6.92 pixman-1 = 0.25.2 +COMPOSITOR_MODULES=wayland-server = 1.6.93 pixman-1 = 0.25.2 AC_ARG_ENABLE(egl, [ --disable-egl],, enable_egl=yes) @@ -292,7 +292,7 @@ AC_SUBST(JPEG_LIBS) PKG_CHECK_MODULES(CAIRO, [cairo]) -PKG_CHECK_MODULES(TEST_CLIENT, [wayland-client = 1.6.92]) +PKG_CHECK_MODULES(TEST_CLIENT, [wayland-client = 1.6.93]) AC_ARG_ENABLE(simple-clients, AS_HELP_STRING([--disable-simple-clients], commit 044f79d4890a59c474ca2da53ddf6ff6c0b2f0c6 Author: Bryce Harrington br...@osg.samsung.com Date: Fri Feb 6 18:01:33 2015 -0800 releasing: Tweak docs to better match actual workflow diff --git a/releasing.txt b/releasing.txt index ce94ed2..b704725 100644 --- a/releasing.txt +++ b/releasing.txt @@ -1,14 +1,19 @@ To make a release of Weston and/or Wayland, follow these steps. - 0. Update the first three lines of configure.ac to the intended + 0. Verify the test suites and codebase checks pass. All of the + tests pass should either pass or skip. + + $ make check + + 1. Update the first three lines of configure.ac to the intended version, commit. Also note that Weston includes versioned dependencies on 'wayland-server' and 'wayland-client' in - configure.ac which typically need updated as well. + configure.ac which typically need updated as well. Then commit + your changes: - 1. Verify the test suites and codebase checks pass. (All of the - tests pass should pass except for xwayland, which can be flaky.) - - $ make check + $ git status + $ git commit configure.ac -m configure.ac: bump to version x.y.z for the xxx release + $ git push 2. Run the release.sh script to generate the tarballs, sign and upload them, and generate a release announcement template. commit bf48e21fa18df9d2c917b8577633107e4b1681de Author: Jonas Ådahl jad...@gmail.com Date: Fri Feb 6 10:15:28 2015 +0800 desktop-shell: Fail if get_xdg_surface is called on an xdg_surface If a client calls xdg_shell.get_xdg_surface on a surface that is already an xdg_surface would, prior to this patch, succeed, but cause weston to crash later when trying to configure. This patch instead sends a role error to the client complaining that it already is an xdg_surface. Note that .._set_role() only fails when changing roles, not when setting the same role twice. The same is done for xdg_popup. Signed-off-by: Jonas Ådahl jad...@gmail.com Reviewed-by: Daniel Stone dani...@collabora.com Reviewed-by: Bryce Harrington br...@osg.samsung.com diff --git a/desktop-shell/shell.c b/desktop-shell/shell.c index 26cadb6..f28fc10 100644 --- a/desktop-shell/shell.c +++ b/desktop-shell/shell.c @@ -3978,6 +3978,14 @@ xdg_get_xdg_surface(struct wl_client *client, struct desktop_shell *shell = sc-shell; struct shell_surface *shsurf; + shsurf = get_shell_surface(surface); + if (shsurf shell_surface_is_xdg_surface(shsurf)) { + wl_resource_post_error(resource, XDG_SHELL_ERROR_ROLE, + This wl_surface is already an + xdg_surface); + return; + } + if (weston_surface_set_role(surface, xdg_surface, resource, XDG_SHELL_ERROR_ROLE) 0) return; @@ -4071,6 +4079,14 @@ xdg_get_xdg_popup(struct wl_client *client, struct weston_surface *parent; struct shell_seat *seat; + shsurf = get_shell_surface(surface); + if (shsurf shell_surface_is_xdg_popup(shsurf)) { + wl_resource_post_error(resource, XDG_SHELL_ERROR_ROLE, + This wl_surface is already an + xdg_popup); + return; + } + if (weston_surface_set_role(surface, xdg_popup, resource, XDG_SHELL_ERROR_ROLE) 0) return; commit f10e06c77aee1c27e5f11f02e5ae6e1ae7fd36a5 Author: Derek Foreman der...@osg.samsung.com Date: Tue Feb 3 11:05:10 2015 -0600 xwm: remove the create
weston: Changes to 'upstream-experimental'
Rebased ref, commits from common ancestor: commit e302b3ef77894cb9fd4113c873a5502efc9a8dd6 Author: Kristian Høgsberg k...@bitplanet.net Date: Tue Jul 24 16:01:29 2012 -0400 Bump version to 0.95.0 diff --git a/configure.ac b/configure.ac index 231a024..c35d987 100644 --- a/configure.ac +++ b/configure.ac @@ -1,6 +1,6 @@ AC_PREREQ([2.64]) AC_INIT([weston], -[0.94.90], +[0.95.0], [https://bugs.freedesktop.org/enter_bug.cgi?product=weston], [weston], [http://wayland.freedesktop.org/]) commit d1936b9e2b352e93ace1b3609740ce4902b33a9e Author: Kristian Høgsberg k...@bitplanet.net Date: Mon Jul 23 22:59:33 2012 -0400 desktop-shell: Break command lines into env vars, executable and arguments We now support specifying environment variables and arguments in launchers by saying path=GDK_BACKEND=wayland gnome-terminal --full-screen for example. https://bugs.freedesktop.org/show_bug.cgi?id=47920 diff --git a/clients/desktop-shell.c b/clients/desktop-shell.c index 61599c3..082a30a 100644 --- a/clients/desktop-shell.c +++ b/clients/desktop-shell.c @@ -34,6 +34,7 @@ #include sys/epoll.h #include linux/input.h #include libgen.h +#include ctype.h #include time.h #include wayland-client.h @@ -90,8 +91,10 @@ struct panel_launcher { struct panel *panel; cairo_surface_t *icon; int focused, pressed; - const char *path; + char *path; struct wl_list link; + struct wl_array envp; + struct wl_array argv; }; struct panel_clock { @@ -173,6 +176,7 @@ show_menu(struct panel *panel, struct input *input, uint32_t time) static void panel_launcher_activate(struct panel_launcher *widget) { + char **argv; pid_t pid; pid = fork(); @@ -184,8 +188,9 @@ panel_launcher_activate(struct panel_launcher *widget) if (pid) return; - if (execl(widget-path, widget-path, NULL) 0) { - fprintf(stderr, execl '%s' failed: %m\n, widget-path); + argv = widget-argv.data; + if (execve(argv[0], argv, widget-envp.data) 0) { + fprintf(stderr, execl '%s' failed: %m\n, argv[0]); exit(1); } } @@ -469,11 +474,57 @@ static void panel_add_launcher(struct panel *panel, const char *icon, const char *path) { struct panel_launcher *launcher; + char *start, *p, *eq, **ps; + int i, j, k; launcher = malloc(sizeof *launcher); memset(launcher, 0, sizeof *launcher); launcher-icon = cairo_image_surface_create_from_png(icon); launcher-path = strdup(path); + + wl_array_init(launcher-envp); + wl_array_init(launcher-argv); + for (i = 0; __environ[i]; i++) { + ps = wl_array_add(launcher-envp, sizeof *ps); + *ps = __environ[i]; + } + j = 0; + + start = launcher-path; + while (*start) { + for (p = start, eq = NULL; *p !isspace(*p); p++) + if (*p == '=') + eq = p; + + if (eq j == 0) { + ps = launcher-envp.data; + for (k = 0; k i; k++) + if (strncmp(ps[k], start, eq - start) == 0) { + ps[k] = start; + break; + } + if (k == i) { + ps = wl_array_add(launcher-envp, sizeof *ps); + *ps = start; + i++; + } + } else { + ps = wl_array_add(launcher-argv, sizeof *ps); + *ps = start; + j++; + } + + while (*p isspace(*p)) + *p++ = '\0'; + + start = p; + } + + ps = wl_array_add(launcher-envp, sizeof *ps); + *ps = NULL; + ps = wl_array_add(launcher-argv, sizeof *ps); + *ps = NULL; + launcher-panel = panel; wl_list_insert(panel-launcher_list.prev, launcher-link); commit df0faf79834630d16235795202f4f4132b886505 Author: Kristian Høgsberg k...@bitplanet.net Date: Mon Jul 23 22:00:21 2012 -0400 image: Add fullscreen support diff --git a/clients/image.c b/clients/image.c index 83ed231..711f0d8 100644 --- a/clients/image.c +++ b/clients/image.c @@ -43,6 +43,7 @@ struct image { struct display *display; char *filename; cairo_surface_t *image; + int fullscreen; }; static void @@ -102,6 +103,15 @@ keyboard_focus_handler(struct window *window, window_schedule_redraw(image-window); } +static void +fullscreen_handler(struct window *window, void *data) +{ + struct image *image = data; + + image-fullscreen ^= 1; + window_set_fullscreen(window,
weston: Changes to 'upstream-experimental'
New branch 'upstream-experimental' available with the following commits: -- To UNSUBSCRIBE, email to debian-x-requ...@lists.debian.org with a subject of unsubscribe. Trouble? Contact listmas...@lists.debian.org Archive: http://lists.debian.org/e1rzzbe-0003ob...@vasks.debian.org