1. 30 Mar, 2020 2 commits
  2. 29 Mar, 2020 1 commit
  3. 12 Mar, 2020 2 commits
  4. 10 Mar, 2020 2 commits
    • Pekka Paalanen's avatar
      cursor-renderer/native: Handle GPU hotplug · a5b5e95a
      Pekka Paalanen authored
      Listen for GPU hotplug events to initialize their cursor support.
      This fixes one reason for why DisplayLink devices may not be using a hardware
      cursor. Particularly, when a DisplayLink device is hotplugged for the first
      time such that EVDI creates a new DRM device node after gnome-shell has already
      started, we used to forget to initialize the cursor support.
      (cherry picked from commit 8abdf16a)
    • Pekka Paalanen's avatar
      cursor-renderer/native: Refactor init to per-gpu · 11da42b2
      Pekka Paalanen authored
      Extract the code to initialize a single GPU cursor support into its own
      function. The new function will be used by GPU hotplug in the future.
      This is a pure refactoring without any behavioral changes.
      Backported from 4cc29cfb.
  5. 23 Feb, 2020 2 commits
  6. 20 Feb, 2020 2 commits
    • Jonas Ådahl's avatar
      window-actor: Don't show actor until meta_window_actor_show() · 011ff156
      Jonas Ådahl authored
      By default clutter will show an actor as it is added to a parent. This
      means that after we create the window actor, when it's added to the
      window group, we implicitly show it. What we really want is to not show
      it until the window is supposed to be shown, which happens when
      meta_window_actor_show() is called, as showing prior to that, could
      cause issues.
      Avoid the implicit show by setting the "show-on-set-parent" property on
      the window actor to `FALSE` on window actor construction.
    • Florian Müllner's avatar
      window: Ignore requests to be placed on non-existent workspaces · c3d2f3f3
      Florian Müllner authored
      When an X11 window requests an initial workspace, we currently trust
      it that the workspace actually exists. However dynamic workspaces
      make this easy to get wrong for applications: They make it likely
      for the number of workspaces to change between application starts,
      and if the app blindly applies its saved state on startup, it will
      trigger an assertion.
      Make sure that we pass valid parameters to set_workspace_state(),
      and simply let the workspace assignment fall through to the default
      handling otherwise.
  7. 19 Feb, 2020 1 commit
  8. 16 Feb, 2020 1 commit
  9. 10 Feb, 2020 1 commit
    • Olivier Fourdan's avatar
      wayland/subsurface: Keep subsurface actors reactive · b2bc3454
      Olivier Fourdan authored
      The actors of Wayland subsurfaces are set to be reactive on creation,
      when receiving the `wl_subcompositor.get_subsurface` request.
      However, if a client creates several subsurfaces and then creates the
      xdg_toplevel object after, the previous subsurface actors are reset.
      As a result, Clutter picking will skip and ignore those actors in
      `clutter_actor_should_pick_paint()` because they aren't marked as
      reactive anymore.
      An example of such a client being affected by this issue is SCTK, the
      Rust library implementing client side decorations for Wayland used
      internally by winit and alacritty.
      Move the `set_reactive()` call from `get_subsurface()` to the subsurface
      `sync_actor_subsurface_state()` vfunc to make sure those remain reactive
      even after `xdg_surface.get_toplevel` is invoked.
      Closes: #1024
      (cherry picked from commit 934a829a)
  10. 03 Feb, 2020 3 commits
  11. 02 Feb, 2020 4 commits
  12. 01 Feb, 2020 1 commit
  13. 31 Jan, 2020 6 commits
  14. 27 Jan, 2020 5 commits
    • Adam Jackson's avatar
      cogl: Fix GLES2 fallback · ca5ed736
      Adam Jackson authored
      Say you're using intel gen3, you poor soul. Your big-GL maxes out at 1.5
      unless you use dirty tricks, but you do have GLES2. We try to fall back
      to GLES in this case, but we only ever say eglBindAPI(EGL_OPENGL_API).
      So when we go to do CreateContext, even though we think we've requested
      GLES 2.0, the driver will compare that "2.0" against the maximum big-GL
      version, and things will fail.
      Fix this by binding EGL_OPENGL_ES_API before trying a GLES context.
      (cherry picket from commit f4f7e313)
    • Carlos Garnacho's avatar
      wayland: Do not check current offer on DnD button release · 5ae317e0
      Carlos Garnacho authored
      This check was added on commit 48639ac5 as a means to disregard
      DnD drops where the offer would disappear beforehand. However since
      that commit was all about wl_data_device_manager version < 3,
      forgetting about the selected mimetype seems a behavior more inline
      with those versions.
      Since no current drop is something expected on X11 drop sites, fixes
      DnD over those, while keeping the original bug fixed.
      Found by Robert Mader (#974 (comment 688144))
      (cherry picked from commit 30bf588a)
    • Carlos Garnacho's avatar
      xwayland: Set XDND source-side actions as per XDND · 21dca329
      Carlos Garnacho authored
      In XDND, we just get a hint on XdndPosition about what's the action
      chosen by the user. Make the data source actions the full set on
      XdndEnter (as we can't know better), and pass the hint in XdndPosition
      as the user chosen action as it should be.
      Makes Wayland drop sites aware of the user action as per XDND with X11
      drag sources, and still makes modifiers during DnD work.
      (cherry picked from commit 090a6ad4)
    • Carlos Garnacho's avatar
      x11: Map x11 (UTF8_)STRING requests to text/plain mimetypes · 41c6e137
      Carlos Garnacho authored
      Make the x11 selection proxy map UTF8_STRING and STRING to proper
      mimetypes, as the selection source (wayland or memory) might not
      offer those for backwards compatibility.
      Closes: gnome-shell#1355
      (cherry picked from commit a6c195b0)
    • Carlos Garnacho's avatar
      wayland: Preserve XdndTypeList for future callers · d38c30c1
      Carlos Garnacho authored
      This Xdnd property is owned by the drag source, we shouldn't delete
      it when reading/proxying it to Wayland clients.
      Closes: gtk#2347
      (cherry picked from commit c1df48be)
  15. 21 Jan, 2020 2 commits
  16. 17 Jan, 2020 2 commits
    • Carlos Garnacho's avatar
      x11: Iterate over selections in a safer manner for event handling · 156dd576
      Carlos Garnacho authored
      It might be the case that handling an event induces the stream to
      trigger completion, hence removing itself from the list. In that
      case we would operate on the no longer valid list element to fetch
      the next one.
      Keep a pointer to the next element beforehand, so we can tiptoe
      over streams that did remove themselves.
      (cherry picked from commit 45a8806e)
    • Carlos Garnacho's avatar
      x11: Detach selection streams on dispose · 4d0a331c
      Carlos Garnacho authored
      The streams were only detached from MetaX11Display (and its event handling)
      on completion. This is too much to expect, and those might be in some
      circumstances replaced while operating.
      Make those streams detach themselves on dispose(), so we don't trip into
      freed memory later on when trying to dispatch unrelated X11 selection events.
      (cherry picked from commit e1fa0734)
  17. 16 Jan, 2020 3 commits
    • Jonas Ådahl's avatar
      kms-impl-simple: Handle mode set race conditions gracefully · 01d93f28
      Jonas Ådahl authored
      If we end up trying to do a mode set on a DRM state that has already
      changed behind our back without us yet having seen the hotplug event we
      may fail with `EINVAL`. Since the renderer layer doesn't handle mode set
      failure, it'll still try to page flip later on, which will then also
      fail. When failing, it'll try to look up the cached mode set in order to
      retry the mode set later on, as is needed to handle other error
      conditions. However, if the mode set prior to the page flip failed, we
      won't cache the mode set, and the page flip error handling code will get
      Instead of asserting that a page flip always has a valid cached mode set
      ready to look up, handle it being missing more gracefully by failing to
      mode set. It is expected that things will correct themself as there
      should be a hotplug event waiting around the the corner, to reconfigure
      the monitor configuration setting new modes.
      Fixes: #917
      (cherry picked from commit ce3409b2)
    • Jonas Ådahl's avatar
      kms-impl-simple: Include mode name in error message · be777dbd
      Jonas Ådahl authored
      (cherry picked from commit 7733f881)
    • Jonas Ådahl's avatar
      wayland/actor-surface: Always consider unmapped actors not on output · a9a01108
      Jonas Ådahl authored
      This avoids using bogus geometric values from an unmapped actor to
      determine whether an actor is on a logical monitor or not. This would
      happen when committing to a subsurface of a yet to be mapped toplevel.
      (cherry picked from commit 6d15231f)