Skip to content
  1. Jul 09, 2014
    • Owen W. Taylor's avatar
      Switch to using ClutterStage::after-paint · 0f214e24
      Owen W. Taylor authored
      The experimental API clutter_stage_set_paint_callback() is replaced
      with an ::after-paint signal as of Clutter 1.19.5.
      0f214e24
    • Owen W. Taylor's avatar
      Leave windows in place on a crash respawn · cf67327f
      Owen W. Taylor authored
      When Mutter is restarted and cleans up the window positions
      cleanly, we need to add gravity adjustments. We can detect
      this easily.
      
       - Windows started before the window manager (should add
         add gravity adjustments)
       - Replacing a different window manager (should add gravity
         adjustments)
       - A crash (no adjustments needed)
      
      In GNOME the first two cases shouldn't happen in normal
      usage, so assume the third case (though that *shouldn't*
      happen in normal usage either.)
      cf67327f
    • Owen W. Taylor's avatar
      Fix windows walking up the screen on restart · 8e5bb177
      Owen W. Taylor authored
      When a window is initially created, we need to save it's user rect
      after any adjustments for gravity. Otherwise, the next time the window is
      queued for a resize, it will jump back to it's initial position.
      
      We did that for newly created windows, but on restart, when windows
      were already placed, the logic skipped saving the position. Use an
      explicit flag so that we always save the position for newly created
      MetaWindows.
      8e5bb177
    • Owen W. Taylor's avatar
      Add support for quad-buffer stereo · 14d2f8fd
      Owen W. Taylor authored
      Track the stereo status of windows using the new EXT_stereo_tree
      GLX extension.
      
      When stereo is enabled or disabled, a restart is triggered via
      meta_restart() after a timeout, setting a _META_ENABLE_STEREO
      property on the root window to indicate whether we should
      turn on a stereo stage for clutter. The property avoids a loop,
      since we need to enable stereo *before* initializing Clutter and GL,
      but we need GL to figure out whether we have stereo windows.
      
      Stereo windows are drawn to the stage using new functionality
      in Cogl to setup a stereo context, select which buffer to draw
      to, and draw either the left or right buffer of a stereo
      texture_from_pixmap.
      14d2f8fd
  2. May 08, 2014
    • Owen W. Taylor's avatar
      Add a framework for restarting the compositor with nice visuals · c249c3f3
      Owen W. Taylor authored
      The current GNOME Shell Alt-F2 restart looks very messy and also
      provides no indication to the user what is going on. We need to
      restart the compositor to switch in and out of stereo mode, so
      add a framework for doing this more cleanly:
      
      Additions:
      
       meta_restart(): restarts the compositor with a message
       MetaDisplay::show-restart-message: signal the embedding
          shell to show a message
       MetaDisplay::restart: signal the embedding shell to restart
          itself.
       meta_is_restart(): indicates whether the current instance is a
                          restart so we can suppress login animations.
      
      A helper program meta-restart-helper holds the composite overlay
      window up during the restart to avoid visual artifacts.
      c249c3f3
  3. May 07, 2014
  4. May 06, 2014
  5. May 02, 2014
  6. May 01, 2014
  7. Apr 17, 2014
  8. Apr 15, 2014
  9. Apr 09, 2014
  10. Apr 07, 2014
  11. Mar 30, 2014
  12. Mar 26, 2014
    • Jasper St. Pierre's avatar
      window-actor: Don't queue a redraw when queueing a new pixmap · f93fa1d7
      Jasper St. Pierre authored
      We guarantee ourselves that a valid pixmap will appear any time
      that the window is painted. The window actor will be scheduled
      for a repaint if it's added / removed from the scene graph, like
      during construction, if the size changes, or if we receive damage,
      which are the existing use cases where this function is called.
      
      So, I can't see any reason that we queue a redraw in here.
      
      With the split into surface actors, we don't have an easy place
      we can use to queue a redraw, and since it's unnecessary, we can
      just drop it on the floor.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=720631
      f93fa1d7
  13. Mar 25, 2014
  14. Mar 22, 2014
  15. Mar 21, 2014
  16. Mar 19, 2014
  17. Mar 17, 2014
  18. Mar 14, 2014
  19. Mar 13, 2014
    • Carlos Garnacho's avatar
      core: Add minimal handling of touch events · 991c85f6
      Carlos Garnacho authored
      Currently touch events are ignored in the core event handler,
      and hence dealt with within GDK. If those touch events were
      emulating pointer events, GDK would attempt to convert back
      those events to pointer events as the frame GdkWindow doesn't
      have the GDK_TOUCH_MASK set.
      
      This results in XI_TouchBegin events being initially processed
      by GDK, converted to button events, and triggering a grab op
      that subverts touch events into pointer events, so the touch
      is never ever seen again by GDK. This leaves GDK in an
      inconsistent internal state wrt pointer grabs, so future
      pointer-emulating touches will refer to the same window forever.
      
      Fix this by handling touch events minimally, just enough to
      convert XI_TouchBegin to GDK_BUTTON_PRESS within mutter, so GDK
      is bypassed for every touch event just like it is for pointer
      events. This, and the XIGrabDevice() that keeps coercing pointer
      events when the grab operation starts, are enough to fix window
      drag and drop on touch devices.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=723552
      991c85f6
  20. Mar 12, 2014
  21. Mar 11, 2014
  22. Mar 09, 2014
  23. Mar 08, 2014
  24. Mar 07, 2014
  25. Mar 06, 2014