Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package python-pywlroots for 
openSUSE:Factory checked in at 2022-10-01 17:43:55
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-pywlroots (Old)
 and      /work/SRC/openSUSE:Factory/.python-pywlroots.new.2275 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-pywlroots"

Sat Oct  1 17:43:55 2022 rev:3 rq:1007397 version:0.15.22

Changes:
--------
--- /work/SRC/openSUSE:Factory/python-pywlroots/python-pywlroots.changes        
2022-08-27 11:50:50.497939944 +0200
+++ 
/work/SRC/openSUSE:Factory/.python-pywlroots.new.2275/python-pywlroots.changes  
    2022-10-01 17:44:22.541803166 +0200
@@ -1,0 +2,12 @@
+Sat Sep 24 07:36:20 UTC 2022 - Soc Virnyl Estela <[email protected]>
+
+- Add libdrm in BuildRequires for the spec
+
+-------------------------------------------------------------------
+Sat Sep 24 07:30:30 UTC 2022 - Soc Virnyl Estela <[email protected]>
+
+- Bump version to 0.15.22:
+  * Add method to XCursorManager for wlr_xcursor_manager_load
+  * Bump libdrm version to 2.4.113 in CI to fix build agaist wlroots master
+
+-------------------------------------------------------------------

Old:
----
  pywlroots-0.15.19.tar.gz

New:
----
  pywlroots-0.15.22.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-pywlroots.spec ++++++
--- /var/tmp/diff_new_pack.bsPEFV/_old  2022-10-01 17:44:23.045804083 +0200
+++ /var/tmp/diff_new_pack.bsPEFV/_new  2022-10-01 17:44:23.053804097 +0200
@@ -18,7 +18,7 @@
 
 %bcond_without test
 Name:           python-pywlroots
-Version:        0.15.19
+Version:        0.15.22
 Release:        0
 Summary:        Python binding to the wlroots library using cffi
 License:        NCSA
@@ -38,6 +38,7 @@
 BuildRequires:  %{python_module xkbcommon}
 BuildRequires:  %{pythons}
 BuildRequires:  fdupes
+BuildRequires:  libdrm >= 2.4.113
 BuildRequires:  libwlroots10
 BuildRequires:  python-rpm-macros
 BuildRequires:  pkgconfig(glib-2.0)

++++++ pywlroots-0.15.19.tar.gz -> pywlroots-0.15.22.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/PKG-INFO 
new/pywlroots-0.15.22/PKG-INFO
--- old/pywlroots-0.15.19/PKG-INFO      2022-07-24 23:33:33.750612500 +0200
+++ new/pywlroots-0.15.22/PKG-INFO      2022-09-20 04:17:53.261108400 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pywlroots
-Version: 0.15.19
+Version: 0.15.22
 Summary: Python binding to the wlroots library using cffi
 Home-page: https://github.com/flacjacket/pywlroots
 Author: Sean Vig
@@ -8,7 +8,6 @@
 License: MIT
 Project-URL: Code, https://github.com/flacjacket/pywlroots/
 Project-URL: Issue tracker, https://github.com/flacjacket/pywlroots/issues
-Platform: UNKNOWN
 Classifier: Development Status :: 2 - Pre-Alpha
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: POSIX :: Linux
@@ -65,5 +64,3 @@
 .. |ci| image:: 
https://github.com/flacjacket/pywlroots/actions/workflows/ci.yml/badge.svg
     :target: https://github.com/flacjacket/pywlroots/actions/workflows/ci.yml
     :alt: Build Status
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/pywlroots.egg-info/PKG-INFO 
new/pywlroots-0.15.22/pywlroots.egg-info/PKG-INFO
--- old/pywlroots-0.15.19/pywlroots.egg-info/PKG-INFO   2022-07-24 
23:33:33.000000000 +0200
+++ new/pywlroots-0.15.22/pywlroots.egg-info/PKG-INFO   2022-09-20 
04:17:53.000000000 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 2.1
 Name: pywlroots
-Version: 0.15.19
+Version: 0.15.22
 Summary: Python binding to the wlroots library using cffi
 Home-page: https://github.com/flacjacket/pywlroots
 Author: Sean Vig
@@ -8,7 +8,6 @@
 License: MIT
 Project-URL: Code, https://github.com/flacjacket/pywlroots/
 Project-URL: Issue tracker, https://github.com/flacjacket/pywlroots/issues
-Platform: UNKNOWN
 Classifier: Development Status :: 2 - Pre-Alpha
 Classifier: Operating System :: POSIX
 Classifier: Operating System :: POSIX :: Linux
@@ -65,5 +64,3 @@
 .. |ci| image:: 
https://github.com/flacjacket/pywlroots/actions/workflows/ci.yml/badge.svg
     :target: https://github.com/flacjacket/pywlroots/actions/workflows/ci.yml
     :alt: Build Status
-
-
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/tiny/server.py 
new/pywlroots-0.15.22/tiny/server.py
--- old/pywlroots-0.15.19/tiny/server.py        2022-07-24 23:33:32.000000000 
+0200
+++ new/pywlroots-0.15.22/tiny/server.py        2022-09-20 04:17:51.000000000 
+0200
@@ -308,14 +308,9 @@
     def server_new_output(self, listener, output: Output) -> None:
         output.init_render(self._allocator, self._renderer)
 
-        if output.modes != []:
-            mode = output.preferred_mode()
-            if mode is None:
-                logger.error("Got no output mode")
-                return
-            output.set_mode(mode)
-            output.enable()
-            output.commit()
+        output.set_mode(output.preferred_mode())
+        output.enable()
+        output.commit()
 
         self.outputs.append(output)
         self._output_layout.add_auto(output)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/ffi_build.py 
new/pywlroots-0.15.22/wlroots/ffi_build.py
--- old/pywlroots-0.15.19/wlroots/ffi_build.py  2022-07-24 23:33:32.000000000 
+0200
+++ new/pywlroots-0.15.22/wlroots/ffi_build.py  2022-09-20 04:17:51.000000000 
+0200
@@ -853,6 +853,14 @@
 
 # types/wlr_output.h
 CDEF += """
+struct wlr_output_mode {
+    int32_t width, height;
+    int32_t refresh; // mHz
+    bool preferred;
+    struct wl_list link;
+    ...;
+};
+
 struct wlr_output_state {
     ...;
 };
@@ -2334,6 +2342,8 @@
 
 void wlr_xdg_surface_for_each_popup_surface(struct wlr_xdg_surface *surface,
     wlr_surface_iterator_func_t iterator, void *user_data);
+
+uint32_t wlr_xdg_surface_schedule_configure(struct wlr_xdg_surface *surface);
 """
 
 # util/edges.h
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pywlroots-0.15.19/wlroots/include/xdg-shell-protocol.h 
new/pywlroots-0.15.22/wlroots/include/xdg-shell-protocol.h
--- old/pywlroots-0.15.19/wlroots/include/xdg-shell-protocol.h  2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/include/xdg-shell-protocol.h  2022-09-20 
04:17:51.000000000 +0200
@@ -1,4 +1,4 @@
-/* Generated by wayland-scanner 1.20.0 */
+/* Generated by wayland-scanner 1.21.0 */
 
 #ifndef XDG_SHELL_SERVER_PROTOCOL_H
 #define XDG_SHELL_SERVER_PROTOCOL_H
@@ -1153,6 +1153,28 @@
 #define XDG_TOPLEVEL_STATE_TILED_BOTTOM_SINCE_VERSION 2
 #endif /* XDG_TOPLEVEL_STATE_ENUM */
 
+#ifndef XDG_TOPLEVEL_WM_CAPABILITIES_ENUM
+#define XDG_TOPLEVEL_WM_CAPABILITIES_ENUM
+enum xdg_toplevel_wm_capabilities {
+       /**
+        * show_window_menu is available
+        */
+       XDG_TOPLEVEL_WM_CAPABILITIES_WINDOW_MENU = 1,
+       /**
+        * set_maximized and unset_maximized are available
+        */
+       XDG_TOPLEVEL_WM_CAPABILITIES_MAXIMIZE = 2,
+       /**
+        * set_fullscreen and unset_fullscreen are available
+        */
+       XDG_TOPLEVEL_WM_CAPABILITIES_FULLSCREEN = 3,
+       /**
+        * set_minimized is available
+        */
+       XDG_TOPLEVEL_WM_CAPABILITIES_MINIMIZE = 4,
+};
+#endif /* XDG_TOPLEVEL_WM_CAPABILITIES_ENUM */
+
 /**
  * @ingroup iface_xdg_toplevel
  * @struct xdg_toplevel_interface
@@ -1173,19 +1195,21 @@
         * stacked above the parent surface and all other ancestor
         * surfaces.
         *
-        * Parent windows should be set on dialogs, toolboxes, or other
+        * Parent surfaces should be set on dialogs, toolboxes, or other
         * "auxiliary" surfaces, so that the parent is raised when the
         * dialog is raised.
         *
-        * Setting a null parent for a child window removes any
-        * parent-child relationship for the child. Setting a null parent
-        * for a window which currently has no parent is a no-op.
-        *
-        * If the parent is unmapped then its children are managed as
-        * though the parent of the now-unmapped parent has become the
-        * parent of this surface. If no parent exists for the now-unmapped
-        * parent then the children are managed as though they have no
-        * parent surface.
+        * Setting a null parent for a child surface unsets its parent.
+        * Setting a null parent for a surface which currently has no
+        * parent is a no-op.
+        *
+        * Only mapped surfaces can have child surfaces. Setting a parent
+        * which is not mapped is equivalent to setting a null parent. If a
+        * surface becomes unmapped, its children's parent is set to the
+        * parent of the now-unmapped surface. If the now-unmapped surface
+        * has no parent, its children's parent is unset. If the
+        * now-unmapped surface becomes mapped again, its parent-child
+        * relationship is not restored.
         */
        void (*set_parent)(struct wl_client *client,
                           struct wl_resource *resource,
@@ -1543,6 +1567,7 @@
 #define XDG_TOPLEVEL_CONFIGURE 0
 #define XDG_TOPLEVEL_CLOSE 1
 #define XDG_TOPLEVEL_CONFIGURE_BOUNDS 2
+#define XDG_TOPLEVEL_WM_CAPABILITIES 3
 
 /**
  * @ingroup iface_xdg_toplevel
@@ -1556,6 +1581,10 @@
  * @ingroup iface_xdg_toplevel
  */
 #define XDG_TOPLEVEL_CONFIGURE_BOUNDS_SINCE_VERSION 4
+/**
+ * @ingroup iface_xdg_toplevel
+ */
+#define XDG_TOPLEVEL_WM_CAPABILITIES_SINCE_VERSION 5
 
 /**
  * @ingroup iface_xdg_toplevel
@@ -1647,6 +1676,18 @@
        wl_resource_post_event(resource_, XDG_TOPLEVEL_CONFIGURE_BOUNDS, width, 
height);
 }
 
+/**
+ * @ingroup iface_xdg_toplevel
+ * Sends an wm_capabilities event to the client owning the resource.
+ * @param resource_ The client's resource
+ * @param capabilities array of 32-bit capabilities
+ */
+static inline void
+xdg_toplevel_send_wm_capabilities(struct wl_resource *resource_, struct 
wl_array *capabilities)
+{
+       wl_resource_post_event(resource_, XDG_TOPLEVEL_WM_CAPABILITIES, 
capabilities);
+}
+
 #ifndef XDG_POPUP_ERROR_ENUM
 #define XDG_POPUP_ERROR_ENUM
 enum xdg_popup_error {
@@ -1704,10 +1745,6 @@
         * popups, it will follow the same dismissing order as required
         * from the client.
         *
-        * The parent of a grabbing popup must either be another xdg_popup
-        * with an active explicit grab, or an xdg_popup or xdg_toplevel,
-        * if there are no explicit grabs already taken.
-        *
         * If the topmost grabbing popup is destroyed, the grab will be
         * returned to the parent of the popup, if that parent previously
         * had an explicit grab.
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/version.py 
new/pywlroots-0.15.22/wlroots/version.py
--- old/pywlroots-0.15.19/wlroots/version.py    2022-07-24 23:33:32.000000000 
+0200
+++ new/pywlroots-0.15.22/wlroots/version.py    2022-09-20 04:17:51.000000000 
+0200
@@ -1,3 +1,3 @@
 # Copyright (c) Sean Vig 2021
 
-version = "0.15.19"
+version = "0.15.22"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pywlroots-0.15.19/wlroots/wlr_types/foreign_toplevel_management_v1.py 
new/pywlroots-0.15.22/wlroots/wlr_types/foreign_toplevel_management_v1.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/foreign_toplevel_management_v1.py   
2022-07-24 23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/foreign_toplevel_management_v1.py   
2022-09-20 04:17:51.000000000 +0200
@@ -18,7 +18,7 @@
 _weakkeydict: WeakKeyDictionary = WeakKeyDictionary()
 
 
-class ForeignToplevelHandleV1State(enum.IntEnum):
+class ForeignToplevelHandleV1State(enum.IntFlag):
     MAXIMIZED = 1 << 0
     MINIMIZED = 1 << 1
     ACTIVATED = 1 << 2
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/wlr_types/input_device.py 
new/pywlroots-0.15.22/wlroots/wlr_types/input_device.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/input_device.py     2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/input_device.py     2022-09-20 
04:17:51.000000000 +0200
@@ -4,6 +4,8 @@
 import enum
 import weakref
 
+from pywayland.server import Signal
+
 from .keyboard import Keyboard
 from wlroots import ffi, PtrHasData, lib
 
@@ -35,6 +37,8 @@
         """
         self._ptr = ffi.cast("struct wlr_input_device *", ptr)
 
+        self.destroy_event = 
Signal(ptr=ffi.addressof(self._ptr.events.destroy))
+
     @property
     def device_type(self) -> InputDeviceType:
         """The device type associated with the current device"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/wlr_types/output.py 
new/pywlroots-0.15.22/wlroots/wlr_types/output.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/output.py   2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/output.py   2022-09-20 
04:17:51.000000000 +0200
@@ -7,12 +7,15 @@
 
 from pywayland.server import Signal
 from pywayland.protocol.wayland import WlOutput
+from pywayland.utils import wl_list_for_each
 
 from wlroots import ffi, PtrHasData, lib, Ptr, str_or_none
 from wlroots.util.region import PixmanRegion32
 from .matrix import Matrix
 
 if TYPE_CHECKING:
+    from typing import Iterator
+
     from wlroots.allocator import Allocator
     from wlroots.renderer import Renderer
 
@@ -77,16 +80,23 @@
         return self._ptr.phys_width, self._ptr.phys_height
 
     @property
-    def modes(self):
-        if lib.wl_list_empty(ffi.addressof(self._ptr.modes)) == 1:
-            return []
+    def modes(self) -> Iterator[OutputMode]:
+        for ptr in wl_list_for_each(
+            "struct wlr_output_mode *",
+            self._ptr.modes,
+            "link",
+            ffi=ffi,
+        ):
+            yield OutputMode(ptr)
 
     @property
     def enabled(self) -> bool:
         return self._ptr.enabled
 
     @property
-    def current_mode(self) -> OutputMode:
+    def current_mode(self) -> OutputMode | None:
+        if self._ptr.current_mode == ffi.NULL:
+            return None
         return OutputMode(self._ptr.current_mode)
 
     @property
@@ -120,12 +130,15 @@
 
         return OutputMode(output_mode_ptr)
 
-    def set_mode(self, mode: OutputMode) -> None:
+    def set_mode(self, mode: OutputMode | None) -> None:
         """Sets the output mode
 
         The output needs to be enabled.
         """
-        lib.wlr_output_set_mode(self._ptr, mode._ptr)
+        if mode is None:
+            lib.wlr_output_set_mode(self._ptr, ffi.NULL)
+        else:
+            lib.wlr_output_set_mode(self._ptr, mode._ptr)
 
     def set_custom_mode(self, width: int, height: int, refresh: int) -> None:
         """
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/wlr_types/output_layout.py 
new/pywlroots-0.15.22/wlroots/wlr_types/output_layout.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/output_layout.py    2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/output_layout.py    2022-09-20 
04:17:51.000000000 +0200
@@ -89,7 +89,7 @@
         """Remove an output from the layout."""
         lib.wlr_output_layout_remove(self._ptr, output._ptr)
 
-    def get_box(self, reference: Output | None = None) -> Box:
+    def get_box(self, reference: Output | None = None) -> Box | None:
         """
         Get the box of the layout for the given reference output in layout
         coordinates. If `reference` is None, the box will be for the extents 
of the
@@ -97,6 +97,8 @@
         """
         if reference:
             box_ptr = lib.wlr_output_layout_get_box(self._ptr, reference._ptr)
+            if box_ptr == ffi.NULL:
+                return None
         else:
             box_ptr = lib.wlr_output_layout_get_box(self._ptr, ffi.NULL)
         return Box(ptr=box_ptr)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pywlroots-0.15.19/wlroots/wlr_types/output_management_v1.py 
new/pywlroots-0.15.22/wlroots/wlr_types/output_management_v1.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/output_management_v1.py     
2022-07-24 23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/output_management_v1.py     
2022-09-20 04:17:51.000000000 +0200
@@ -63,12 +63,17 @@
         return Output(self._ptr.output)
 
     @property
-    def mode(self) -> OutputMode:
+    def mode(self) -> OutputMode | None:
+        if self._ptr.mode == ffi.NULL:
+            return None
         return OutputMode(self._ptr.mode)
 
     @mode.setter
-    def mode(self, value: OutputMode) -> None:
-        self._ptr.mode = value._ptr
+    def mode(self, mode: OutputMode | None) -> None:
+        if mode is None:
+            self._ptr.mode = ffi.NULL
+        else:
+            self._ptr.mode = mode._ptr
 
     @property
     def custom_mode(self):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pywlroots-0.15.19/wlroots/wlr_types/pointer_constraints_v1.py 
new/pywlroots-0.15.22/wlroots/wlr_types/pointer_constraints_v1.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/pointer_constraints_v1.py   
2022-07-24 23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/pointer_constraints_v1.py   
2022-09-20 04:17:51.000000000 +0200
@@ -23,7 +23,7 @@
     CONFINED = lib.WLR_POINTER_CONSTRAINT_V1_CONFINED
 
 
-class PointerConstraintV1StateField(enum.IntEnum):
+class PointerConstraintV1StateField(enum.IntFlag):
     REGION = lib.WLR_POINTER_CONSTRAINT_V1_STATE_REGION
     CURSOR_HINT = lib.WLR_POINTER_CONSTRAINT_V1_STATE_CURSOR_HINT
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' 
old/pywlroots-0.15.19/wlroots/wlr_types/xcursor_manager.py 
new/pywlroots-0.15.22/wlroots/wlr_types/xcursor_manager.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/xcursor_manager.py  2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/xcursor_manager.py  2022-09-20 
04:17:51.000000000 +0200
@@ -59,6 +59,12 @@
         """Clean-up the X cursor manager on contex manager exit"""
         self.destroy()
 
+    def load(self, scale: float) -> bool:
+        """
+        Ensures an xcursor theme at the given scale factor is loaded in the 
manager.
+        """
+        return bool(lib.wlr_xcursor_manager_load(self._ptr, scale))
+
 
 class XCursor(Ptr):
     """struct wlr_xcursor"""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/pywlroots-0.15.19/wlroots/wlr_types/xdg_shell.py 
new/pywlroots-0.15.22/wlroots/wlr_types/xdg_shell.py
--- old/pywlroots-0.15.19/wlroots/wlr_types/xdg_shell.py        2022-07-24 
23:33:32.000000000 +0200
+++ new/pywlroots-0.15.22/wlroots/wlr_types/xdg_shell.py        2022-09-20 
04:17:51.000000000 +0200
@@ -196,6 +196,13 @@
             self._ptr, lib.surface_iterator_callback, handle
         )
 
+    def schedule_configure(self) -> int:
+        """
+        Schedule a surface configuration. This should only be called by 
protocols
+        extending the shell.
+        """
+        return lib.wlr_xdg_surface_schedule_configure(self._ptr)
+
 
 class XdgSurfaceConfigure(Ptr):
     def __init__(self, ptr) -> None:

Reply via email to