Skip to content
  1. May 03, 2019
    • Marco Trevisan's avatar
      dialog: Really set ellipsize mode in subtitle and body · 94690640
      Marco Trevisan authored and Marco Trevisan's avatar Marco Trevisan committed
      Dialog's subtitle or body could not be properly wrapped, while it's ellipsized
      when the text's width doesn't exceed the container size.
      
      Clutter text has an `ellipsize` property, however in dialog's subtitle and body
      we have been setting the `ellipsize-mode` property to Pango.EllipsizeMode.NONE
      that is not present in the underlying GObject.
      
      Not being an error in javascript, gjs didn't warn us about this, while at the
      same time the St.Label's default Pango.EllipsizeMode.END was used.
      
      Fixes GNOME/gnome-shell#922
      
      GNOME/gnome-shell!531
      
      
      (cherry picked from commit 3121c9aa)
      94690640
  2. Apr 11, 2018
    • Florian Müllner's avatar
      st: Do not force allocation updates during shadow creation · e6ba3606
      Florian Müllner authored
      If an actor is pending a relayout when get_allocation_box() is called,
      the method forces an allocation update. In case of StWidget, this might
      then result in a style update and a consecutive invalidation of the
      shadow spec.
      
      A helper method that invalidates one of its parameters as a side effect
      (and by extension its return value as well) is most unexpected, so cur-
      rently _st_create_shadow_pipeline_from_actor() poses an easy trap to
      callers to run into.
      
      Remove that trap by calling get_size()/get_position() instead, which
      don't have the unintended side effect - it is still a good idea to fix
      callers who were running into this to not waste resources on creating
      shadows that are invalidated before the next paint, but throwing un-
      defined behavior at them is harsh ...
      
      https://bugzilla.gnome.org/show_bug.cgi?id=788908
      e6ba3606
  3. Mar 20, 2018
  4. Feb 26, 2018
  5. Feb 19, 2018
  6. Feb 10, 2018
  7. Jan 30, 2018
    • Carlos Garnacho's avatar
      padOsd: Ensure to pick pad devices only · 0d9c7421
      Carlos Garnacho authored
      If the underlying X11 input driver creates multiple devices from a single
      device node, we may end up picking up the wrong device. So, instead of
      picking the first device based on node and bailing out if it's not a pad,
      pick the first pad that has that device node, and bail out if there is
      none.
      
      GNOME/gnome-shell#10
      
      Closes: #10
      0d9c7421
  8. Jan 27, 2018
  9. Jan 17, 2018
  10. Dec 18, 2017
  11. Dec 15, 2017
  12. Dec 08, 2017
  13. Dec 06, 2017
  14. Dec 05, 2017
  15. Nov 21, 2017
    • Marco Trevisan's avatar
      status/keyboard: Reset menuItems and Label objects on change · 3b4be770
      Marco Trevisan authored
      In the current code it could happen that we've menuItems and indicatorLabels
      for sources that aren't anymore around, because in case a source is removed
      we don't cleanup the their container objects.
      Also, we should nullify InputManager's _currentSource when sources change
      or it might point to some invalid data again.
      
      So it could happen that we try to access an invalid menuitem or label
      if a source change happens mentioning a source that has been deleted.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=788931
      3b4be770
  16. Nov 20, 2017
  17. Nov 17, 2017
    • Carlos Garnacho's avatar
      overview: Protect ::drag-end handlers · af79d975
      Carlos Garnacho authored
      These end up emitting item-drag-end/window-drag-end pretty much
      without checks. Given the MetaDnd object may end up emitting
      ::drag-leave as a result of the plugin ending its grab, this
      would result on spurious emission of those events and subsequent
      warnings.
      
      For extra paranoia, the _inDrag variable has been split into
      _inItemDrag/_inWindowDrag so we can't cross the streams.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=784545
      af79d975
  18. Nov 06, 2017
  19. Nov 03, 2017
  20. Nov 02, 2017
  21. Oct 27, 2017
  22. Oct 25, 2017
  23. Oct 24, 2017
    • Marco Trevisan's avatar
      main: use SA_NODEFER to track signals to being able to raise from alarm · 2c247958
      Marco Trevisan authored
      After we receive one of the tracked signals, in case we get stuck inside
      the gjs_dumpstack () call, we use an alarm to raise the previously emitted
      signal, however without using SA_NODEFER, the raise inside the alarm handler
      will be ignored.
      
      To avoid to handle new signals caused by the handler calls, once we get the
      first signal, we just ignore them all as they could only lead to dirty traces.
      
      Also, cleaning up a bit the code, and disabling the shell log handler
      in dump_gjs_stack_alarm_sigaction since this might lead to a new
      gjs_dumpstack () request.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=789237
      2c247958
  24. Oct 23, 2017
    • Marco Trevisan's avatar
      main: call gjs_dumpstack on aborts and traps and optionally on segfaults · f15650e0
      Marco Trevisan authored
      In order to debug issues triggered by JS code we might need to
      see the stack of it, this is not normally visible in static stack traces,
      thus we need to call gjs_dumpstack () before dying the process.
      
      Intercepting signals SIGABRT, SIGTRAP (needed for catching fatal glib
      errors) SIGFPE and SIGIOT by default, while introducing a new
      'backtrace-segfaults' flag for the SHELL_DEBUG environment variable to
      do the same on SIGSEGV and SIGBUS (this is a precaution to avoid that we
      corrupt the stack for automatic errors trackers).
      
      In any case after dumping the stack we raise the signal again, in order
      to make the system aware of it.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=789237
      f15650e0
  25. Oct 20, 2017
  26. Oct 16, 2017
  27. Oct 15, 2017
  28. Oct 11, 2017
  29. Oct 07, 2017
    • Jonas Ådahl's avatar
      layout: Unset primary and bottom monitor when headless · 5f8a5114
      Jonas Ådahl authored
      We were handling being initially headless by only setting the primary
      and bottom monitor if there was any primary monitor, then checking the
      primary monitor reference before making calls assuming there was any
      monitors.
      
      What we didn't do was unset the primary and bottom monitor when going
      headless, meaning that temporarly disconnecting a monitor while having
      windows open caused an assert to be triggered due to various code paths
      taking the path assuming there are valid monitors.
      
      Unsetting both the primary and bottom monitor when going headless avoids
      the code paths in the same way as they were avoided when starting
      headless.
      
      https://bugzilla.gnome.org/show_bug.cgi?id=788607
      5f8a5114
  30. Oct 05, 2017
  31. Oct 04, 2017