1. 16 Dec, 2016 1 commit
  2. 15 Dec, 2016 1 commit
    • Olivier Fourdan's avatar
      wayland: apply empty input shape on parent commit · 5c3192c7
      Olivier Fourdan authored
      For subsurfaces, the new state which includes the input shape is not
      applied by the compositor if the subsurface is in effective synchronous
      mode.
      
      So we need to apply the input shape once parent surface is in effective
      desynchronized mode, which is when it's committed, otherwise the input
      shape may never be applied if the widget is not using being_paint() /
      end_paint() to draw on its subsurface, like clutter does.
      
      We do that only for empty input shape as those won't need update when
      the subsurface is resized, for all other non-empty input shape, the
      client still has to use begin_paint()/end_paint() for the input shape to
      be applied.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=774534
      5c3192c7
  3. 06 Dec, 2016 2 commits
  4. 05 Dec, 2016 6 commits
    • Benjamin Otte's avatar
      gdkgl: Add gdk_gl_context_get_damage() · 8915be00
      Benjamin Otte authored
      This is a way to query the damaged area of the backbuffer.
      
      The GL renderer uses this to compute the extents of that damage region
      (computed via buffer age) and use them to minimize the area to redraw.
      
      This changes the semantics of GL rendering to "When calling
      gdk_window_begin_frame() with a GL context, the area by
      gdk_gl_context_get_damage() needs to be redrawn and every other pixel of
      the backbuffer is guaranteed to be correct.
      After gdk_window_end_frame() on a GL-drawn window, the whole backbuffer
      must be correct.
      
      We can always glXBufferSwap() now because of this.
      8915be00
    • Benjamin Otte's avatar
      gdk: Make gdk_window_begin_draw_frame() take a draw context · ca78f5d3
      Benjamin Otte authored
      ... instead of a gl context.
      
      This requires some refactoring in the way we mark the shared context as
      drawing: We now call begin_frame/end_frame() on it and ignore the call
      on the main context.
      Unfortunately we need to do this check in all vfuncs, which sucks. But I
      haven't found a better way.
      ca78f5d3
    • Benjamin Otte's avatar
      725a7236
    • Benjamin Otte's avatar
      glcontext: Make begin/end_draw() paired · e87b4721
      Benjamin Otte authored
      This way, we can query the GL context's state via
      gdk_gl_context_is_drawing().
      
      Use this function to make GL contexts as attached and grant them access
      to the front/backbuffer for rendering.
      
      All of this is still unused because GL drawing is still disabled.
      e87b4721
    • Benjamin Otte's avatar
      gdk: Large GL refactoring · 182d18bc
      Benjamin Otte authored
      No visible changes as GL rendering is disabled at the moment.
      
      What was done:
      
      1. Move window->invalidate_for_new_frame to glcontext->begin_frame
      This moves the code to where it is used (the GLContext) and prepares it
      for being called where it is used when actually beginning to draw the
      frame.
      
      2. Get rid of buffer-age usage
      We want to let the application render directly to the backbuffer.
      Because of that, we cannot make any assumptions about the contents the
      application renders outside the clip area.
      In particular GskGLRenderer renders random stuff there but not actual
      contents.
      
      3. Pass the actual GL context
      Previously, we passed the shared context to end_frame, now we pass the
      actual GL context that the application uses for rendering. This is so
      that the vfuncs could prepare the actual contexts for rendering (they
      don't currently).
      
      4. Simplify the code
      The previous code set up the final drawing method in begin_frame.
      Instead, we now just ensure the clip area is something we can render
      and decide on the actual method in end_frame.
      This is both more robust (we can change the clip area in between if we
      want to) and less code.
      182d18bc
    • Benjamin Otte's avatar
      gdk: Remove all code that only existed because of use_gl · bddfd7bb
      Benjamin Otte authored
      Now that we don't use GL anymore, this code is unnecessary.
      bddfd7bb
  5. 30 Nov, 2016 2 commits
  6. 24 Nov, 2016 1 commit
  7. 23 Nov, 2016 1 commit
  8. 20 Nov, 2016 1 commit
  9. 18 Nov, 2016 1 commit
  10. 09 Nov, 2016 1 commit
    • Florian Müllner's avatar
      gdkdisplay-wayland: Add API to set startup notification ID · d163aba0
      Florian Müllner authored
      For wayland clients, the startup notification ID is currently only set
      from the DESKTOP_STARTUP_ID environment variable. As that variable is
      only set for clients launched via exec(), startup completion is not
      indicated correctly for DBus-activated applications unless an explicit
      ID is specified - usually that is not the case, as the default handling
      uses gdk_notify_startup_complete().
      To address this, we need API to set the startup notification ID from GTK
      as we have on X11.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=768531
      d163aba0
  11. 07 Nov, 2016 1 commit
  12. 06 Nov, 2016 3 commits
  13. 05 Nov, 2016 2 commits
  14. 03 Nov, 2016 3 commits
  15. 29 Oct, 2016 1 commit
    • Benjamin Otte's avatar
      API: screen: Remove gdk_screen_is_composited() · d249e77b
      Benjamin Otte authored
      Switch code to use gdk_display_is_composited() instead.
      
      The new code also doesn't use a vfunc to query the property but rather
      requires the backend to call set_composited()/set_rgba() to change the
      value.
      d249e77b
  16. 28 Oct, 2016 3 commits
  17. 25 Oct, 2016 2 commits
  18. 20 Oct, 2016 1 commit
    • Carlos Garnacho's avatar
      wayland: Allow grabless xdg_popups · 31db11dd
      Carlos Garnacho authored
      xdg_shell v6 allows grabless popups, whose behavior is not that
      different from override redirect windows with no grab to take
      keyboard input (and pointer events outside).
      
      This means we can relax the requirement to have a grab before
      creating an xdg_popup. The warning is still useful to have so
      people stop relying on gdk_window_show();gdk_device_grab() being
      an ok pattern to popup a window, it's been moved to wayland
      implementation of gdk_device_grab() instead, so we warn if trying
      to grab a GDK_WINDOW_TEMP window that's already visible.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=771694
      31db11dd
  19. 17 Oct, 2016 1 commit
  20. 16 Oct, 2016 6 commits