Skip to content
Snippets Groups Projects
  1. Apr 19, 2025
    • Fatih Uzunoğlu's avatar
    • Fatih Uzunoğlu's avatar
    • Fatih Uzunoğlu's avatar
      qt: disable mask instead of using the exact `QWindow::geometry()` in `CompositorWayland` · 4ead38ef
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      This is useful when toggling the window title bar setting. For example, if it is
      switched on from off, a title bar appears and the window geometry no longer counts
      the title bar, but then, the mask needs to account for the title bar. This is
      observed with KWin, where SSD is supported (through `zxdg_decoration_manager_v1`)
      but not effective when the setting is switched (which effectively means switching
      the `FramelessWindowHint` flag), as in that case Qt platform plugin tries to decorate
      the window itself (probably the protocol does not support switching SSD like that).
      
      I assume this occurs because the title bar is not really server-side decoration
      but rather the one provided by platform decoration (`QT_WAYLAND_DECORATION`), so
      technically client-side decoration (managed by the platform plugin).
      
      Since when `FramelessWindowHint` is off; either SSD (`zxdg_decoration_manager_v1`),
      or CSD (managed by the platform plugin), in both cases the `windowExtendedMargin()`
      would be set to 0 in our case, this is a valid workaround instead of trying to get
      the client side margins with (`QWaylandWindow::clientSideMargins()`) and accounting
      it when applying the margins.
      
      I'm not sure if this is a Qt or KWin Wayland bug, because if CSD is handled by the
      platform plugin, the application should not be forced to care about the CSD. In that
      case for the application, it is no different than SSD.
      
      Also use `QRect(QPoint(0, 0), m_qmlView->size())` instead of `m_qmlView->geometry()`
      because mask should be relative to the window, not screen. Currently this does not
      change anything because XDG surface (at least regular ones) does not provide where
      it is positioned in the screen, so `QWindow::position()` returns (0, 0).
      4ead38ef
    • Fatih Uzunoğlu's avatar
      qml: use anchoring in `EmptyLabel.qml` labels · 4e83b48d
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      This is because in some cases (such as changing
      the interface scale) the `Column` does not
      re-position them.
      4e83b48d
    • Fatih Uzunoğlu's avatar
      qml: disable word wrap in `EmptyLabelHint.qml` · 4fe0e24a
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      As the implicit size can not be determined with
      word wrap. We currently depend on the implicit
      size starting with 452a2171.
      4fe0e24a
    • Fatih Uzunoğlu's avatar
      qml: fix binding loop in `EmptyLabel.qml` · 8f1192bc
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      Padding is considered in implicit size, it should not
      depend on the explicit size.
      8f1192bc
    • Fatih Uzunoğlu's avatar
      qml: enable default transitions only when drag and drop is feasible in `ListViewExt` · 6c6b68d8
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      I wanted to use the Component approach, with relying on the JS engine's garbage
      collection, like I do in the scroll bar case (not creating the scroll bar when
      the scroll bar is irrelevant) but it was not possible here. It seems that
      Transition sets up the animations based on its parent, and I could not find
      a "target" property in Transition.
      
      Instead, I simply bind `enabled` of the transition to whether `acceptDropFunc`
      is valid. Testing `acceptDropFunc` is a good practice when checking whether
      the drag and drop is feasible in the view.
      
      This fixes the problem of the initial items getting animated when media library
      views load the (initial) items asynchronously. We don't want the initial items to
      be animated. The playlist media library views are going to be still be affected
      by this, as they support drag and drop and we want the transitions there, but
      there is not much to do about that here.
      6c6b68d8
  2. Apr 18, 2025
    • Steve Lhomme's avatar
    • Thomas Guillem's avatar
      contrib: add qml in .gitignore · 915d74f9
      Thomas Guillem authored and Steve Lhomme's avatar Steve Lhomme committed
      Fixes the following untracked files:
      
      ? contrib/qml/QML/plugins.qmltypes
      ? contrib/qml/QML/qmldir
      ? contrib/qml/QtCore/libqtqmlcoreplugin.a
      ? contrib/qml/QtCore/libqtqmlcoreplugin.prl
      ? contrib/qml/QtCore/plugins.qmltypes
      ? contrib/qml/QtCore/qmldir
      ? contrib/qml/QtQml/Models/libmodelsplugin.a
      ? contrib/qml/QtQml/Models/libmodelsplugin.prl
      ? contrib/qml/QtQml/Models/plugins.qmltypes
      ? contrib/qml/QtQml/Models/qmldir
      ? contrib/qml/QtQml/WorkerScript/libworkerscriptplugin.a
      ? contrib/qml/QtQml/WorkerScript/libworkerscriptplugin.prl
      ? contrib/qml/QtQml/WorkerScript/plugins.qmltypes
      ? contrib/qml/QtQml/WorkerScript/qmldir
      ? contrib/qml/QtQml/libqmlplugin.a
      ? contrib/qml/QtQml/libqmlplugin.prl
      ? contrib/qml/QtQml/plugins.qmltypes
      ? contrib/qml/QtQml/qmldir
      ? contrib/qml/QtQuick/tooling/Component.qml
      ? contrib/qml/QtQuick/tooling/Enum.qml
      ? contrib/qml/QtQuick/tooling/Member.qml
      ? contrib/qml/QtQuick/tooling/Method.qml
      ? contrib/qml/QtQuick/tooling/Module.qml
      ? contrib/qml/QtQuick...
      915d74f9
    • Fatih Uzunoğlu's avatar
      qml: raise horizontal resize handle in artist pane in `MusicArtistsAlbums.qml` · 7f04f30f
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      If it is not raised, scroll bar grabs the mouse events.
      7f04f30f
    • Fatih Uzunoğlu's avatar
      qt: classify scene graph error critical and not warning · 8e5c6d77
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      Note that fatal messages cause Qt to abort the program. I
      think standard errors are best represented with critical
      messages.
      
      We never want Qt to abort the program itself, as in most
      cases we can gracefully handle the situation (as done
      here).
      8e5c6d77
    • Fatih Uzunoğlu's avatar
      d122762b
    • Fatih Uzunoğlu's avatar
    • Fatih Uzunoğlu's avatar
      qt: make use of `QStringBuilder` in `ControlbarProfileModel::save()` · d4bba3e9
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      This was unfortunately forgotten in 04507065.
      
      I used `%` instead of `+` even though defining `QT_USE_QSTRINGBUILDER`
      (where we do) makes `+` behave like `%`, to explicitly request to
      use `QStringBuilder` noting the amount of additions done.
      d4bba3e9
    • Fatih Uzunoğlu's avatar
      qt: fix popups do not close on press outside with `CompositorX11` · 9785fcdc
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      9785fcdc
    • Fatih Uzunoğlu's avatar
      qml: make icon tool button popup non-modal · 88efbb18
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      88efbb18
    • Fatih Uzunoğlu's avatar
      qml: make tracks menu popup non-modal · e1369ec7
      Fatih Uzunoğlu authored and Steve Lhomme's avatar Steve Lhomme committed
      e1369ec7
    • Thomas Guillem's avatar
      win32: dirs: fix possible VLC_SNAPSHOTS_DIR failure · 1d398e7f
      Thomas Guillem authored and Steve Lhomme's avatar Steve Lhomme committed
      Fallback to FOLDERID_Pictures if FOLDERID_Screenshots can't be found.
      1d398e7f
    • William Woodruff's avatar
      ci: fix macOS contrib rebuild path · 27c39ace
      William Woodruff authored and Steve Lhomme's avatar Steve Lhomme committed
      
      Corrects the VLC_CONTRIB_REBUILD_PATHS variable
      for macOS builds to point to the correct
      extras/package subdirectory.
      
      Signed-off-by: default avatarWilliam Woodruff <william@trailofbits.com>
      27c39ace
    • William Woodruff's avatar
      musicbrainz: fix two sources of undefined behavior · 4a251e00
      William Woodruff authored and Steve Lhomme's avatar Steve Lhomme committed
      
      This patch fixes two sources of undefined behavior in
      the MusicBrainz module. In both cases, the undefined
      behavior steps from irrefutably derefencing a null pointer.
      
      Signed-off-by: default avatarWilliam Woodruff <william@trailofbits.com>
      4a251e00
    • Thomas Guillem's avatar
      chroma_probe: fix possible use-after-free · a6bd7b4f
      Thomas Guillem authored and Steve Lhomme's avatar Steve Lhomme committed
      Asan report:
      
      $ ASAN_OPTIONS=halt_on_error=false ./test/test_src_misc_chroma_probe VAOP
      
      ==411069==ERROR: AddressSanitizer: heap-use-after-free on address 0x524000042830 at pc 0x7f16fd14e49e bp 0x7ffda23620c0 sp 0x7ffda23620b8
      READ of size 8 at 0x524000042830 thread T0
          #0 0x7f16fd14e49d in vlc_chroma_conv_result_Equals ../../src/misc/chroma_probe.c:336
          #1 0x7f16fd14e49d in vlc_chroma_conv_Probe ../../src/misc/chroma_probe.c:442
          #2 0x4022ba in main ../../test/src/misc/chroma_probe.c:330
          #3 0x7f16fc516247 in __libc_start_call_main (/lib64/libc.so.6+0x3247) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #4 0x7f16fc51630a in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x330a) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #5 0x403744 in _start (/var/home/asenat/Workspaces/vlan/vlc/build/test/test_src_misc_chroma_probe+0x403744) (BuildId: 67a39e0b63fa78ae2d672a359d5ce1a997726940)
      
      0x524000042830 is located 1840 bytes inside of 6976-byte region [0x524000042100,0x524000043c40)
      freed by thread T0 here:
          #0 0x7f16fe07c7d8 in realloc.part.0 (/lib64/libasan.so.8+0xc17d8) (BuildId: 5294bd2731fcae07af92dfea7808576c57d53bc9)
          #1 0x7f16fd14d635 in vlc_reallocarray ../../include/vlc_common.h:1079
          #2 0x7f16fd14d635 in vlc_vector_reallocdata_ ../../include/vlc_vector.h:171
          #3 0x7f16fd14d635 in vlc_chroma_conv_Probe ../../src/misc/chroma_probe.c:447
          #4 0x4022ba in main ../../test/src/misc/chroma_probe.c:330
          #5 0x7f16fc516247 in __libc_start_call_main (/lib64/libc.so.6+0x3247) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #6 0x7f16fc51630a in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x330a) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #7 0x403744 in _start (/var/home/asenat/Workspaces/vlan/vlc/build/test/test_src_misc_chroma_probe+0x403744) (BuildId: 67a39e0b63fa78ae2d672a359d5ce1a997726940)
      
      previously allocated by thread T0 here:
          #0 0x7f16fe07d8d7 in malloc (/lib64/libasan.so.8+0xc28d7) (BuildId: 5294bd2731fcae07af92dfea7808576c57d53bc9)
          #1 0x7f16fd14c23c in vlc_reallocarray ../../include/vlc_common.h:1079
          #2 0x7f16fd14c23c in vlc_vector_reallocdata_ ../../include/vlc_vector.h:171
          #3 0x7f16fd14c23c in vlc_chroma_conv_Probe ../../src/misc/chroma_probe.c:402
          #4 0x4022ba in main ../../test/src/misc/chroma_probe.c:330
          #5 0x7f16fc516247 in __libc_start_call_main (/lib64/libc.so.6+0x3247) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #6 0x7f16fc51630a in __libc_start_main@GLIBC_2.2.5 (/lib64/libc.so.6+0x330a) (BuildId: b6c381bfdcb5e08ea82c1c39cf16580181fb6cfc)
          #7 0x403744 in _start (/var/home/asenat/Workspaces/vlan/vlc/build/test/test_src_misc_chroma_probe+0x403744) (BuildId: 67a39e0b63fa78ae2d672a359d5ce1a997726940)
      a6bd7b4f
  3. Apr 16, 2025
  4. Apr 14, 2025
    • Tristan Matthews's avatar
      contrib: aom: update to 3.12.1 · a85b9a7b
      Tristan Matthews authored
        - Bug Fixes
          * b:396169342: Assertion
            `av1_is_subpelmv_in_range(&ms_params.mv_limits, start_mv)' failed.
          * b:401671154: typo in void init_src_params(...)
          * Coverity defect 323670: Uninitialized scalar variable in
            encode_with_and_without_superres()
          * cmake: bump minimum version to 3.16
          * cfl_ppc: fix subtract_average_vsx
          * Fix an incorrect index in av1_highbd_pixel_proj_error_neon
      a85b9a7b
    • Alexandre Janniaux's avatar
      darwinvlc: remove SIGCHLD GCD handling · 120b4939
      Alexandre Janniaux authored and Rémi Denis-Courmont's avatar Rémi Denis-Courmont committed
      
      The handling through GCD was added back then in commit
      cc07bce0. In that commit,
      signal(SIGCHLD, SIG_DFL) was already called to ensure the behavior of
      the signal is restored to default handlers.
      
      In `man 3 signal` from the macos manual, it is said that when setting
      SIG_IGN for SIGCHLD, the operating system will not create zombie process
      and the exit status will be ignored. We do want to avoid creating zombie
      process but we also want to have exit status, which means we do indeed
      need the SIG_DFL handler here. See also the following commit on the
      linux side: 94763831.
      
      However, GCD was used to automatically call waitpid() on the process
      that are being signalled as closing. Since we're always calling waitpid
      when spawning any process, this duplicates the handling. But the clients
      are actually using vlc_waitpid which is checking errno != ECHILD, so it
      would break as soon as the GCD handler is executed before the
      vlc_waitpid call.
      
      Since every cases are explicitely calling vlc_waitpid(), do as linux and
      just remove the specific GCD handling.
      
      Co-authored-by: default avatarMarvin Scholz <epirat07@gmail.com>
      
      Fixes #29099
      120b4939
  5. Apr 13, 2025
  6. Apr 12, 2025
Loading