1. 13 Nov, 2021 1 commit
  2. 29 Jul, 2021 1 commit
  3. 11 Mar, 2021 1 commit
  4. 07 Dec, 2020 2 commits
    • Jonas Ådahl's avatar
      gdk: Replace 'WITHDRAWN' state with async 'is-mapped' boolean · d2c95a1b
      Jonas Ådahl authored
      It was used by all surfaces to track 'is-mapped', but still part of the
      GdkToplevelState, and is now replaced with a separate boolean in the
      GdkSurface structure.
      
      It also caused issues when a widget was unmapped, and due to that
      unmapped a popover which hid its corresponding surface. When this
      surface was hidden, it emitted a state change event, which would then go
      back into GTK and queue a resize on popover widget, which would travel
      back down to the widget that was originally unmapped, causing confusino
      when doing future allocations.
      
      To summarize, one should not hide widgets during allocation, and to
      avoid this, make this new is-mapped boolean asynchronous when hiding a
      surface, meaning the notification event for the changed mapped state
      will be emitted in an idle callback. This avoids the above described
      reentry issue.
      d2c95a1b
    • Jonas Ådahl's avatar
      gdk/toplevel: Make gdk_toplevel_present() async · 64191597
      Jonas Ådahl authored
      The plan is to concencrate size computations as part of the frame clock
      dispatch, meaning we shouldn't do it synchronously in the present()
      function.
      
      Still, in Wayland, and maybe elsewhere, it is done in the present()
      function, e.g. when no state change was made, but this will eventually
      be changed.
      64191597
  5. 01 Dec, 2020 1 commit
  6. 10 Sep, 2020 4 commits
  7. 05 Aug, 2020 1 commit
    • Jonas Ådahl's avatar
      gdk/toplevel: Negotiate surface size via a compute-size signal · 2ff74eb6
      Jonas Ådahl authored
      GTK will not up front know how to correctly calculate a size, since it
      will not be able to reliably predict the constraints that may exist
      where it will be mapped.
      
      Thus, to handle this, calculate the size of the toplevel by having GDK
      emitting a signal called 'compute-size' that will contain information
      needed for computing a toplevel window size.
      
      This signal may be emitted at any time, e.g. during
      gdk_toplevel_present(), or spontaneously if constraints change.
      
      This also drops the max size from the toplevel layout, while moving the
      min size from the toplevel layout struct to the struct passed via the
      signal,
      
      This needs changes to a test case where we make sure we process
      GDK_CONFIGURE etc, which means we also needs to show the window and
      process all pending events in the test-focus-chain test case.
      2ff74eb6
  8. 17 May, 2020 1 commit
  9. 30 Mar, 2020 1 commit
    • Olivier Fourdan's avatar
      gdk: Add gdk_toplevel_inhibit_system_shortcuts API · 3e1f59af
      Olivier Fourdan authored
      With the removal of grabs from the public API, we need a replacement API
      to let applications bypass system keyboard shortcuts.
      
      A typical use case for this API is remote desktop or virtual machine
      viewers which need to inhibit the default system keyboard shortcuts so
      that the remote session or virtual host gets those instead of the local
      environment.
      
      Close: #982
      3e1f59af
  10. 14 Mar, 2020 3 commits
  11. 12 Mar, 2020 2 commits