commit wlc for openSUSE:Factory
Hello community, here is the log from the commit of package wlc for openSUSE:Factory checked in at 2016-06-02 09:38:36 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Comparing /work/SRC/openSUSE:Factory/wlc (Old) and /work/SRC/openSUSE:Factory/.wlc.new (New) ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Package is "wlc" Changes: -------- --- /work/SRC/openSUSE:Factory/wlc/wlc.changes 2016-05-08 10:46:17.000000000 +0200 +++ /work/SRC/openSUSE:Factory/.wlc.new/wlc.changes 2016-06-02 09:38:37.000000000 +0200 @@ -1,0 +2,14 @@ +Mon May 30 18:25:56 UTC 2016 - tcech@suse.com + +- drop build requirements of xcb-xevie and xcb-xprint + +------------------------------------------------------------------- +Mon May 23 10:02:13 UTC 2016 - tcech@suse.com + +- bump to 0.0.3 + view property related changes + bugfixes + build related improvements + use XDG_SEAT instead of seat0 + +------------------------------------------------------------------- Old: ---- wlc-0.0.2.tar.bz2 wlc-0.0.2.tar.bz2.asc New: ---- wlc-0.0.3.tar.bz2 wlc-0.0.3.tar.bz2.asc ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ Other differences: ------------------ ++++++ wlc.spec ++++++ --- /var/tmp/diff_new_pack.6cnqtA/_old 2016-06-02 09:38:38.000000000 +0200 +++ /var/tmp/diff_new_pack.6cnqtA/_new 2016-06-02 09:38:38.000000000 +0200 @@ -19,7 +19,7 @@ %define wayland_minimal 1.7.0 Name: wlc -Version: 0.0.2 +Version: 0.0.3 Release: 0 Summary: A Wayland Compositor Library License: MIT @@ -66,12 +66,10 @@ BuildRequires: pkgconfig(xcb-shape) BuildRequires: pkgconfig(xcb-shm) BuildRequires: pkgconfig(xcb-sync) -BuildRequires: pkgconfig(xcb-xevie) BuildRequires: pkgconfig(xcb-xf86dri) BuildRequires: pkgconfig(xcb-xfixes) BuildRequires: pkgconfig(xcb-xinerama) BuildRequires: pkgconfig(xcb-xkb) -BuildRequires: pkgconfig(xcb-xprint) BuildRequires: pkgconfig(xcb-xtest) BuildRequires: pkgconfig(xcb-xv) BuildRequires: pkgconfig(xcb-xvmc) ++++++ wlc-0.0.2.tar.bz2 -> wlc-0.0.3.tar.bz2 ++++++ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/CMakeLists.txt new/wlc-0.0.3/CMakeLists.txt --- old/wlc-0.0.2/CMakeLists.txt 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/CMakeLists.txt 2016-05-22 21:15:27.000000000 +0200 @@ -1,5 +1,5 @@ CMAKE_MINIMUM_REQUIRED(VERSION 3.1) -PROJECT(wlc VERSION 0.0.2 LANGUAGES C) +PROJECT(wlc VERSION 0.0.3 LANGUAGES C) set(CMAKE_MODULE_PATH "${CMAKE_MODULE_PATH}" "${PROJECT_SOURCE_DIR}/CMake") # Subprojects @@ -23,6 +23,7 @@ include(test) # Options +OPTION(WLC_X11_SUPPORT "Build X11 backend and XWayland support" ON) OPTION(WLC_BUILD_STATIC "Build wlc as static library" OFF) OPTION(WLC_BUILD_EXAMPLES "Build wlc examples" ON) OPTION(WLC_BUILD_TESTS "Build wlc tests" ON) @@ -39,10 +40,12 @@ find_package(Udev REQUIRED) find_package(LibInput REQUIRED) -find_package(X11 COMPONENTS X11-xcb Xfixes) -set_package_properties(X11 PROPERTIES TYPE RECOMMENDED PURPOSE "Enables X11 backend") -find_package(XCB COMPONENTS xcb-ewmh xcb-composite xcb-xkb xcb-image xcb-xfixes) -set_package_properties(XCB PROPERTIES TYPE RECOMMENDED PURPOSE "Enables Xwayland and X11 backend") +if (WLC_X11_SUPPORT) + find_package(X11 REQUIRED COMPONENTS X11-xcb Xfixes) + set_package_properties(X11 PROPERTIES TYPE REQUIRED PURPOSE "Enables X11 backend") + find_package(XCB REQUIRED COMPONENTS xcb-ewmh xcb-composite xcb-xkb xcb-image xcb-xfixes) + set_package_properties(XCB PROPERTIES TYPE REQUIRED PURPOSE "Enables Xwayland and X11 backend") +endif () find_package(GLESv2 REQUIRED) set_package_properties(GLESv2 PROPERTIES TYPE REQUIRED PURPOSE "Enables OpenGL renderer") find_package(EGL REQUIRED) diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/README.rst new/wlc-0.0.3/README.rst --- old/wlc-0.0.2/README.rst 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/README.rst 2016-05-22 21:15:27.000000000 +0200 @@ -40,6 +40,7 @@ static bool view_created(wlc_handle view) { + wlc_view_set_mask(view, wlc_output_get_mask(wlc_view_get_output(view))); wlc_view_bring_to_front(view); wlc_view_focus(view); return true; @@ -57,7 +58,7 @@ wlc_set_view_created_cb(view_created); wlc_set_view_focus_cb(view_focus); - if (!wlc_init2()) + if (!wlc_init()) return EXIT_FAILURE; wlc_run(); @@ -158,6 +159,10 @@ For now you can look at the `AUR recipe <https://aur.archlinux.org/packages/wlc-git/>`_ for a example. +Releases are signed with `1AF6D26A <http://pgp.mit.edu/pks/lookup?op=vindex&search=0xF769BB961AF6D26A>`_ and published `on GitHub <https://github.com/Cloudef/wlc/releases>`_. + +All 0.0.x releases are considered unstable. + CONTRIBUTING ------------ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/include/wlc/wlc.h new/wlc-0.0.3/include/wlc/wlc.h --- old/wlc-0.0.2/include/wlc/wlc.h 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/include/wlc/wlc.h 2016-05-22 21:15:27.000000000 +0200 @@ -56,6 +56,13 @@ WLC_BIT_POPUP = 1<<4, // xdg-shell, wl-shell popups }; +/** wlc_set_view_properties_updated_cb(); */ +enum wlc_view_property_update_bit { + WLC_BIT_PROPERTY_TITLE = 1<<0, + WLC_BIT_PROPERTY_CLASS = 1<<1, + WLC_BIT_PROPERTY_APP_ID = 1<<2, +}; + /** wlc_view_set_geometry(); Edges in interface interface.view.request.resize function. */ enum wlc_resize_edge { WLC_RESIZE_EDGE_NONE = 0, @@ -176,6 +183,9 @@ /** View post render hook. */ void wlc_set_view_render_post_cb(void (*cb)(wlc_handle view)); +/** View properties (title, class, app_id) was updated */ +void wlc_set_view_properties_updated_cb(void (*cb)(wlc_handle view, uint32_t mask)); + /** Key event was triggered, view handle will be zero if there was no focus. Return true to prevent sending the event to clients. */ void wlc_set_keyboard_key_cb(bool (*cb)(wlc_handle view, uint32_t time, const struct wlc_modifiers*, uint32_t key, enum wlc_key_state)); @@ -240,10 +250,10 @@ void* wlc_handle_get_user_data(wlc_handle handle); /** Add fd to event loop. Return value of callback is unused, you should return 0. */ -WLC_NONULLV(3) struct wlc_event_source* wlc_event_loop_add_fd(int fd, uint32_t mask, int (*cb)(int fd, uint32_t mask, void *arg), void *arg); +WLC_NONULLV(3) struct wlc_event_source* wlc_event_loop_add_fd(int fd, uint32_t mask, int (*cb)(int fd, uint32_t mask, void *userdata), void *userdata); /** Add timer to event loop. Return value of callback is unused, you should return 0. */ -WLC_NONULLV(1) struct wlc_event_source* wlc_event_loop_add_timer(int (*cb)(void *arg), void *arg); +WLC_NONULLV(1) struct wlc_event_source* wlc_event_loop_add_timer(int (*cb)(void *userdata), void *userdata); /** Update timer to trigger after delay. Returns true on success. */ WLC_NONULL bool wlc_event_source_timer_update(struct wlc_event_source *source, int32_t ms_delay); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/lib/chck/chck/buffer/buffer.c new/wlc-0.0.3/lib/chck/chck/buffer/buffer.c --- old/wlc-0.0.2/lib/chck/chck/buffer/buffer.c 2016-04-02 20:32:05.000000000 +0200 +++ new/wlc-0.0.3/lib/chck/chck/buffer/buffer.c 2016-04-16 16:31:49.000000000 +0200 @@ -413,7 +413,7 @@ chck_buffer_compress_zlib(struct chck_buffer *buf) { #if HAS_ZLIB - size_t dsize, bsize; + uLongf dsize, bsize; dsize = bsize = compressBound(buf->size); void *compressed; @@ -454,11 +454,11 @@ chck_buffer_decompress_zlib(struct chck_buffer *buf) { #if HAS_ZLIB - size_t dsize, bsize; + uLongf dsize, bsize; { size_t sz; - if (unlikely(chck_mul_ofsz(buf->size, 2, &sz))) + if (unlikely(chck_mul_ofsz(buf->size, 2, &sz)) || (uLongf)sz < sz) return false; dsize = bsize = sz; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/compositor/view.c new/wlc-0.0.3/src/compositor/view.c --- old/wlc-0.0.2/src/compositor/view.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/compositor/view.c 2016-05-22 21:15:27.000000000 +0200 @@ -434,22 +434,28 @@ view->data.minimized = minimized; } -bool -wlc_view_set_title_ptr(struct wlc_view *view, const char *title) +void +wlc_view_set_title_ptr(struct wlc_view *view, const char *title, size_t length) { - return (view ? chck_string_set_cstr(&view->data.title, title, true) : false); + if (view && !chck_cstrneq(view->data.title.data, title, length) && chck_string_set_cstr_with_length(&view->data.title, title, length, true)) { + WLC_INTERFACE_EMIT(view.properties_updated, convert_to_wlc_handle(view), WLC_BIT_PROPERTY_TITLE); + } } -bool -wlc_view_set_class_ptr(struct wlc_view *view, const char *class_) +void +wlc_view_set_class_ptr(struct wlc_view *view, const char *class_, size_t length) { - return (view ? chck_string_set_cstr(&view->data._class, class_, true) : false); + if (view && !chck_cstrneq(view->data._class.data, class_, length) && chck_string_set_cstr_with_length(&view->data._class, class_, length, true)) { + WLC_INTERFACE_EMIT(view.properties_updated, convert_to_wlc_handle(view), WLC_BIT_PROPERTY_CLASS); + } } -bool +void wlc_view_set_app_id_ptr(struct wlc_view *view, const char *app_id) { - return (view ? chck_string_set_cstr(&view->data.app_id, app_id, true) : false); + if (view && !chck_cstreq(view->data.app_id.data, app_id) && chck_string_set_cstr(&view->data.app_id, app_id, true)) { + WLC_INTERFACE_EMIT(view.properties_updated, convert_to_wlc_handle(view), WLC_BIT_PROPERTY_APP_ID); + } } void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/compositor/view.h new/wlc-0.0.3/src/compositor/view.h --- old/wlc-0.0.2/src/compositor/view.h 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/compositor/view.h 2016-05-22 21:15:27.000000000 +0200 @@ -95,8 +95,8 @@ void wlc_view_set_state_ptr(struct wlc_view *view, enum wlc_view_state_bit state, bool toggle); void wlc_view_set_parent_ptr(struct wlc_view *view, struct wlc_view *parent); void wlc_view_set_minimized_ptr(struct wlc_view *view, bool minimized); -bool wlc_view_set_title_ptr(struct wlc_view *view, const char *title); -bool wlc_view_set_class_ptr(struct wlc_view *view, const char *class_); -bool wlc_view_set_app_id_ptr(struct wlc_view *view, const char *app_id); +void wlc_view_set_title_ptr(struct wlc_view *view, const char *title, size_t length); +void wlc_view_set_class_ptr(struct wlc_view *view, const char *class_, size_t length); +void wlc_view_set_app_id_ptr(struct wlc_view *view, const char *app_id); #endif /* _WLC_VIEW_H_ */ diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/internal.h new/wlc-0.0.3/src/internal.h --- old/wlc-0.0.2/src/internal.h 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/internal.h 2016-05-22 21:15:27.000000000 +0200 @@ -81,6 +81,9 @@ /** Post render hook. */ void (*post)(wlc_handle view); } render; + + /** View properties (title, class, app_id) was updated */ + void (*properties_updated)(wlc_handle view, uint32_t mask); } view; struct { diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/platform/backend/drm.c new/wlc-0.0.3/src/platform/backend/drm.c --- old/wlc-0.0.2/src/platform/backend/drm.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/platform/backend/drm.c 2016-05-22 21:15:27.000000000 +0200 @@ -373,7 +373,7 @@ info->height = connector->modes[i].vdisplay; } - wlc_log(WLC_LOG_INFO, "MODE: (%d) %ux%u %s", c, mode.width, mode.height, (mode.flags & WL_OUTPUT_MODE_CURRENT ? "*" : (mode.flags & WL_OUTPUT_MODE_PREFERRED ? "!" : ""))); + wlc_log(WLC_LOG_INFO, "MODE: (%d) %ux%u@%u %s", c, mode.width, mode.height, mode.refresh, (mode.flags & WL_OUTPUT_MODE_CURRENT ? "*" : (mode.flags & WL_OUTPUT_MODE_PREFERRED ? "!" : ""))); wlc_output_information_add_mode(&info->info, &mode); } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/resources/types/shell-surface.c new/wlc-0.0.3/src/resources/types/shell-surface.c --- old/wlc-0.0.2/src/resources/types/shell-surface.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/resources/types/shell-surface.c 2016-05-22 21:15:27.000000000 +0200 @@ -143,14 +143,14 @@ wl_cb_shell_surface_set_title(struct wl_client *client, struct wl_resource *resource, const char *title) { (void)client; - wlc_view_set_title_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), title); + wlc_view_set_title_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), title, strlen(title)); } static void wl_cb_shell_surface_set_class(struct wl_client *client, struct wl_resource *resource, const char *class_) { (void)client; - wlc_view_set_class_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), class_); + wlc_view_set_class_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), class_, strlen(class_)); } WLC_CONST const struct wl_shell_surface_interface* diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/resources/types/surface.c new/wlc-0.0.3/src/resources/types/surface.c --- old/wlc-0.0.2/src/resources/types/surface.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/resources/types/surface.c 2016-05-22 21:15:27.000000000 +0200 @@ -293,9 +293,11 @@ struct wlc_view *view = convert_from_wlc_handle(surface->view, "view"); struct wlc_geometry g, area; + struct wlc_size ssize = { 1, 1 }; + wlc_size_max(&ssize, &surface->size, &ssize); wlc_view_get_bounds(view, &g, &area); - surface->coordinate_transform.w = (float)(area.size.w) / surface->size.w; - surface->coordinate_transform.h = (float)(area.size.h) / surface->size.h; + surface->coordinate_transform.w = (float)(area.size.w) / ssize.w; + surface->coordinate_transform.h = (float)(area.size.h) / ssize.h; } surface->commit.attached = (buffer ? true : false); diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/resources/types/xdg-surface.c new/wlc-0.0.3/src/resources/types/xdg-surface.c --- old/wlc-0.0.2/src/resources/types/xdg-surface.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/resources/types/xdg-surface.c 2016-05-22 21:15:27.000000000 +0200 @@ -28,7 +28,7 @@ xdg_cb_surface_set_title(struct wl_client *client, struct wl_resource *resource, const char *title) { (void)client; - wlc_view_set_title_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), title); + wlc_view_set_title_ptr(convert_from_wlc_handle((wlc_handle)wl_resource_get_user_data(resource), "view"), title, strlen(title)); } static void diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/session/fd.c new/wlc-0.0.3/src/session/fd.c --- old/wlc-0.0.2/src/session/fd.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/session/fd.c 2016-05-22 21:15:27.000000000 +0200 @@ -216,7 +216,7 @@ } if (!pfd) { - wlc_log(WLC_LOG_WARN, "Tried to close fd that we did not open: (%zu, %zu)", st_dev, st_ino); + wlc_log(WLC_LOG_WARN, "Tried to close fd that we did not open: (%zu, %zu)", (size_t)st_dev, (size_t)st_ino); return; } diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/wlc.c new/wlc-0.0.3/src/wlc.c --- old/wlc-0.0.2/src/wlc.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/wlc.c 2016-05-22 21:15:27.000000000 +0200 @@ -179,17 +179,17 @@ } WLC_API struct wlc_event_source* -wlc_event_loop_add_fd(int fd, uint32_t mask, int (*cb)(int fd, uint32_t mask, void *arg), void *arg) +wlc_event_loop_add_fd(int fd, uint32_t mask, int (*cb)(int fd, uint32_t mask, void *userdata), void *userdata) { assert(wlc_event_loop()); - return (struct wlc_event_source*)wl_event_loop_add_fd(wlc_event_loop(), fd, mask, cb, arg); + return (struct wlc_event_source*)wl_event_loop_add_fd(wlc_event_loop(), fd, mask, cb, userdata); } WLC_API struct wlc_event_source* -wlc_event_loop_add_timer(int (*cb)(void *arg), void *arg) +wlc_event_loop_add_timer(int (*cb)(void *userdata), void *userdata) { assert(wlc_event_loop()); - return (struct wlc_event_source*)wl_event_loop_add_timer(wlc_event_loop(), cb, arg); + return (struct wlc_event_source*)wl_event_loop_add_timer(wlc_event_loop(), cb, userdata); } WLC_API bool @@ -315,7 +315,9 @@ if (!privileged && !x11display && has_logind) { if (!(wlc.display = wl_display_create())) die("Failed to create wayland display"); - if (!(vt = wlc_logind_init("seat0"))) + + const char *xdg_seat = getenv("XDG_SEAT"); + if (!(vt = wlc_logind_init(xdg_seat ? xdg_seat : "seat0"))) die("Failed to init logind"); } #else @@ -489,6 +491,12 @@ } WLC_API void +wlc_set_view_properties_updated_cb(void (*cb)(wlc_handle view, uint32_t mask)) +{ + wlc.interface.view.properties_updated = cb; +} + +WLC_API void wlc_set_keyboard_key_cb(bool (*cb)(wlc_handle view, uint32_t time, const struct wlc_modifiers*, uint32_t key, enum wlc_key_state)) { wlc.interface.keyboard.key = cb; diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' '--exclude=.svnignore' old/wlc-0.0.2/src/xwayland/xwm.c new/wlc-0.0.3/src/xwayland/xwm.c --- old/wlc-0.0.2/src/xwayland/xwm.c 2016-04-15 22:59:16.000000000 +0200 +++ new/wlc-0.0.3/src/xwayland/xwm.c 2016-05-22 21:15:27.000000000 +0200 @@ -231,9 +231,9 @@ case XCB_ATOM_STRING: // Class && Name if (props[i].atom == XCB_ATOM_WM_CLASS) { - chck_string_set_cstr_with_length(&view->data._class, xcb_get_property_value(reply), xcb_get_property_value_length(reply), true); + wlc_view_set_class_ptr(view, xcb_get_property_value(reply), xcb_get_property_value_length(reply)); } else if (props[i].atom == XCB_ATOM_WM_NAME) { - chck_string_set_cstr_with_length(&view->data.title, xcb_get_property_value(reply), xcb_get_property_value_length(reply), true); + wlc_view_set_title_ptr(view, xcb_get_property_value(reply), xcb_get_property_value_length(reply)); } break; case XCB_ATOM_WINDOW:
participants (1)
-
root@hilbert.suse.de