1. 11 Mar, 2021 1 commit
  2. 14 Feb, 2021 1 commit
    • Matthias Clasen's avatar
      popuplayout: Add shadow width · ea19f7c3
      Matthias Clasen authored
      Add shadow width to the GdkPopupLayout struct. This
      information is needed by the compositor to make correct
      positioning decisions about popups.
      ea19f7c3
  3. 06 Jun, 2020 1 commit
  4. 21 Feb, 2020 1 commit
    • Jonas Ådahl's avatar
      gdk/wayland: Avoid relayout with the same properties · 2f13ac2e
      Jonas Ådahl authored
      When a popup is already showing, and gdk_surface_present_popup() is
      called, if the layout didn't change, we're not really interested in
      relayouting.
      
      In the future, we'll be able to get notified if position of the popup
      would change by some environmental changes, but until then, just don't
      support it.
      2f13ac2e
  5. 19 Feb, 2020 1 commit
    • Jonas Ådahl's avatar
      gdk/surface: Replace move_to_rect() with GdkPopupLayout based API · ca71119a
      Jonas Ådahl authored
      Replace the gdk_surface_move_to_rect() API with a new GdkSurface
      method called gdk_surface_present_popup() taking a new GdkPopupLayout
      object describing how they should be laid out on screen.
      
      The layout properties provided are the same as the ones used with
      gdk_surface_move_to_rect(), except they are now set up using
      GdkPopupLayout.
      
      Calling gdk_surface_present_popup() will either show the popup at the
      position described using the popup layout object and a new unconstrained
      size, or reposition it accordingly.
      
      In some situations, such as when a popup is set to autohide, presenting
      may immediately fail, in case the grab was not granted by the display
      server.
      
      After a successful present, the result of the layout can be queried
      using the following methods:
      
       * gdk_surface_get_position() - to get the position relative to its
         parent
       * gdk_surface_get_width() - to get the current width
       * gdk_surface_get_height() - to get the current height
       * gdk_surface_get_rect_anchor() - to get the anchor point on the anchor
         rectangle the popup was effectively positioned against given
         constraints defined by the environment and the layout rules provided
         via GdkPopupLayout.
       * gdk_surface_get_surface_anchor() - the same as the one above but for
         the surface anchor.
      
      A new signal replaces the old "moved-to-rect" one -
      "popup-layout-changed". However, it is only intended to be emitted when
      the layout changes implicitly by the windowing system, for example if
      the monitor resolution changed, or the parent window moved.
      ca71119a