Skip to content
  1. Mar 16, 2024
  2. Mar 15, 2024
    • Jonas Dreßler's avatar
      subprojects/gvc: Bump gvc submodule to newest commit · a2ad5ded
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      A few fixes have landed in gvc recently that should fix a crash,
      so bump the submodule to include those.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3233>
      (cherry picked from commit de754db4)
      a2ad5ded
    • Jonas Dreßler's avatar
      Revert "main: Only restore key focus on pop when modal actor is still focused" · 3a84dc0f
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      This one caused a regression and now keys appear to get stuck while raising
      the screenShield, so revert it. Hopefully we can fix the original problem in
      a better way next cycle by tracking key focus changes internally in
      ClutterGrab.
      
      https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7446
      
      This reverts commit 4d544d7b.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3231>
      (cherry picked from commit a6442486)
      3a84dc0f
    • Florian Müllner's avatar
      shell: Remove left-over function declaration · c5131b53
      Florian Müllner authored
      The function itself was removed in commit 4b80cbe1 back
      in 2016.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3206>
      (cherry picked from commit a1dd5d5e)
      c5131b53
    • Florian Müllner's avatar
      notificationDaemon: Fix auto-closing FDO notifications · 808de1bc
      Florian Müllner authored
      We auto-close FDO notifications when the sender leaves the bus,
      given that the protocol was created without persistency in mind
      and any action will become invalid.
      
      However that broke when moving the public-facing implementation
      into a separate service, as we now track the (always running)
      service instead of the original sender.
      
      Fix that by forwarding the sender to the internal implementation
      via a private hint, just like we already do for the PID.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3204>
      (cherry picked from commit 9af81e44)
      808de1bc
    • Florian Müllner's avatar
      notificationDaemon: Namespace private `sender-pid` hint · d43f27e2
      Florian Müllner authored
      The hint is a private implementation detail between the public
      and internal services, not something anybody else should set
      (*cough* libnotify *cough*).
      
      Prefix the name to hopefully make that clearer.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3204>
      (cherry picked from commit f0b1cf5f)
      d43f27e2
    • Florian Müllner's avatar
      extensions-app: Fix service activation mix-up · 58772685
      Florian Müllner authored
      Starting the D-Bus service should not pop-up a window by itself,
      it should just register and wait for an explicit call to Activate().
      
      The .desktop file on the other hand should fully activate the
      app when using the Exec line.
      
      https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7423
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3202>
      (cherry picked from commit 3504a6a8)
      58772685
    • Ray Strode's avatar
      authPrompt: Disregard smartcard status changes if VERIFICATION_IN_PROGRESS · 8a4eddb0
      Ray Strode authored and Florian Müllner's avatar Florian Müllner committed
      commit c8bb45b4 introduced a new
      verification state, VERIFICATION_IN_PROGRESS, to detect when the user
      has already interacted with the authentication prompt, so the
      prompt can rate limit the number of times the user can cancel
      authentication attempts with the escape key (without also rate limiting
      the number of times they can hit escape to go back to the clock without
      interacting with the prompt).
      
      That means there are now two states that represent the user actively
      undergoing verification: VERIFYING and VERIFICATION_IN_PROGRESS.
      
      It's inappropriate to reset the smartcard service if the user is
      actively conversing with it. We try to check for that by looking at the
      original verification state, VERIFYING, but we unfortunately, neglect
      to account for the new VERIFICATION_IN_PROGRESS state.
      
      The result is that if a user types their smartcard pin at the clock,
      and then inserts their smartcard, the pin will get cleared instead of
      used, and they have to retype it again.
      
      This commit fixes the oversight, and allows users to again pre-type
      their smartcard pin at the clock before inserting their smartcard.
      
      Part-of:
      <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2765>
      (cherry picked from commit 3dd5dcd9)
      8a4eddb0
  3. Feb 11, 2024
    • Florian Müllner's avatar
      Bump version to 44.9 · a0fe8778
      Florian Müllner authored
      Update NEWS.
      44.9
      a0fe8778
    • Julian Sparber's avatar
      st/button: Fix small mistake in st_button_toggle_mode docs · 2da40049
      Julian Sparber authored and Florian Müllner's avatar Florian Müllner committed
      When the toggle mode is enabled the checked state will be changed not
      the active state.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3172>
      (cherry picked from commit 7b5da30f)
      2da40049
    • Carlos Garnacho's avatar
      osk: Add missing shift level to Georgian OSK layout · 69e68469
      Carlos Garnacho authored and Florian Müllner's avatar Florian Müllner committed
      This layout initially snapshot from CLDR data is missing the
      Shift level. Add one based on user feedback, and essentially
      mirroring the keymap for physical keyboards.
      
      Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6744
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3145>
      (cherry picked from commit 2ab5a5d7)
      69e68469
    • Keyu Tao's avatar
      windowManager: Add "opacity: 0" to minimize ease animation · 6942058e
      Keyu Tao authored and Florian Müllner's avatar Florian Müllner committed
      Extensions like dash-to-dock use set_icon_geometry() to window.
      This changes the dest and scale of ease animation of minimize and
      makes it looks very strange. By setting dest opacity to 0 the animation
      could be more natural.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2968>
      (cherry picked from commit 5d1a0cc5)
      6942058e
    • Florian Müllner's avatar
      dbusService: Don't double-wrap remote errors · 76954cbf
      Florian Müllner authored
      Returning a GLib.Error from a method invocation will encode the
      error when sent over the wire. In case the error itself is already
      an encoded remote error, just passing it on will result in double
      wrapping.
      
      Avoid that by stripping any remote error information before
      returning it.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3159>
      (cherry picked from commit a5d33026)
      76954cbf
    • Florian Müllner's avatar
      ci: Do not create pipelines for branches with open MRs · 073a7676
      Florian Müllner authored
      Pipelines for non-protected branches are set to 'manual', and
      thus cheap. However they may still get picked by `@marge-bot`,
      meaning that the bot waits for the completion of a pipeline that
      never starts.
      
      Avoid that by not creating pipelines for branches with open
      merge requests.
      
      Credit to Jordan, who came up with this for gst.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3153>
      (cherry picked from commit d3e96a36)
      073a7676
    • Suryashankar Das's avatar
      overview: Hide search results while leaving overview · 17a6dbd9
      Suryashankar Das authored and Florian Müllner's avatar Florian Müllner committed
      There is currently no proper transition from search results
      to the session: Only the top bar fades, but the rest of the
      screen just changes abruptly at the end of the transition.
      
      Fix this by hiding search results before leaving the overview,
      so the regular transition can take place.
      
      Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/3821
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3152>
      (cherry picked from commit 3cb1fb74)
      17a6dbd9
    • Florian Müllner's avatar
      unlockDialog: Only show switch-user button for multiple users · 113bccef
      Florian Müllner authored
      We don't offer "Switch user" on single-user systems when unlocked,
      so it is a bit weird to include it while locked.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2475>
      (cherry picked from commit 756f212d)
      113bccef
    • Jonas Dreßler's avatar
      main: Only restore key focus on pop when modal actor is still focused · 47043912
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      If something grabs the key focus while a modal is pushed, keeping
      key-focus on that actor seems like the smarter thing to do than setting
      it back to the last focus after the modal gets popped again. So check if
      the key focus actor that we set when pushing the modal got changed when
      popping that modal, and if it got changed, simply don't touch key focus.
      
      This fixes a bug with the close dialog, where key focus isn't correctly
      set to the dialog after alt-tabbing to a window showing a close dialog.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/786>
      (cherry picked from commit 4d544d7b)
      47043912
    • Jonas Dreßler's avatar
      closeDialog: Actually set key focus to button when grabbing key focus · 37dbc370
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      When setting the key focus to `this._dialog`, the default button is not
      automatically focused and no button has key focus.
      
      Use the `initialKeyFocus` property of the dialog instead, and set focus
      to the default button if the dialog is not already focused.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/786>
      (cherry picked from commit de834fe3)
      37dbc370
    • Florian Müllner's avatar
      boxpointer: Clamp alignments to expected range · 95a2ea93
      Florian Müllner authored
      The values are expected to be between 0 (start) and 1 (end),
      enforce that with appropriate clamp() calls.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3150>
      (cherry picked from commit d0b23510)
      95a2ea93
    • Florian Müllner's avatar
      boxpointer: Swap arrow alignment on RTL · b7ddc852
      Florian Müllner authored
      The current code uses the arrow alignment to align the menu between
      the top/left (0) and bottom/right(1), regardless of the text direction.
      
      Instead of adjusting code everywhere, reinterpret the parameter
      to refer to start/end instead, and swap the alignment with an
      RTL text direction.
      
      Credit to Sebastian Keller for spotting the cause of the issue.
      
      Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5261
      Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7356
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3150>
      (cherry picked from commit 4e70315f)
      b7ddc852
    • Florian Müllner's avatar
      windowManager: Keep dim effect in overview · 80f4b3c9
      Florian Müllner authored
      Removing the effect dates back to the time when we didn't show
      attached dialogs in the overview. Since we do show attached
      dialogs as such nowadays, it makes sense to keep the effect.
      
      Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6265
      
      Part-of:
      <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3151>
      (cherry picked from commit 7b405456)
      80f4b3c9
    • Florian Müllner's avatar
      closeDialog: Close existing dialogs on shutdown · 094d8954
      Florian Müllner authored
      Otherwise mutter will request to hide the dialog when the meta
      context is destroyed, but at the JS context has already shut down,
      resulting in a crash.
      
      Close https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7328
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3117>
      (cherry picked from commit 17b71621)
      094d8954
  4. Jan 22, 2024
  5. Jan 21, 2024
  6. Jan 06, 2024
    • Florian Müllner's avatar
      Bump version to 44.8 · f0d11745
      Florian Müllner authored
      Update NEWS.
      44.8
      f0d11745
    • Jonian Guveli's avatar
      appMenu: Move setApp to null before destroy · 117aae39
      Jonian Guveli authored and Florian Müllner's avatar Florian Müllner committed
      Calling `setApp` after the menu has been destroyed results in error.
      Moving the method before `super.destroy()` fixes the issue.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2998>
      (cherry picked from commit 6615d699)
      117aae39
    • Julian Sparber's avatar
      panel: Ensure signal is disconnected when the panel is destroyed · 98c29ff3
      Julian Sparber authored and Florian Müllner's avatar Florian Müllner committed
      This fixes a warning when terminating GNOME Shell
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3064>
      (cherry picked from commit b66dee80)
      98c29ff3
    • Florian Müllner's avatar
      windowPreview: Don't hide overlay while hovering icon · f45330e7
      Florian Müllner authored
      We should treat the icon like we do the caption or close button,
      and still consider the preview hovered when the pointer is over
      the icon.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3049>
      (cherry picked from commit 39d29888)
      f45330e7
    • Julian Sparber's avatar
      st/scroll-view: Allow removing edge fade · 6126f65b
      Julian Sparber authored and Florian Müllner's avatar Florian Müllner committed
      Remove the fade effect when the css property `-st-vfade-offset` is removed
      from a widget. The effect isn't added when the property never existed.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3047>
      (cherry picked from commit 33c074c7)
      6126f65b
    • Sebastian Keller's avatar
      st/widget: Don't allow adding/removing "" style class · 74c4138c
      Sebastian Keller authored and Florian Müllner's avatar Florian Müllner committed
      strstr() in find_class_name() will always consider "" a match so the
      loop was not stopping at the end of the class_list. None of the matches
      within the class_list would satisfy the return conditions, unless the
      class_list was either an empty string as well or has a trailing space.
      So this ends up with a match outside of the allocated string that
      happens to satisfy these conditions by chance which then leads to the
      class string containing some of this unrelated memory. Or it might lead
      to a segfault.
      
      This adds checks to the public API that uses find_class_name() to
      prevent extensions from accidentally triggering a crash this way or
      having some otherwise unexpected results.
      
      Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7152
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3006>
      (cherry picked from commit dc931e82)
      74c4138c
    • Florian Müllner's avatar
      st/bin: Fix height request · c0a74aca
      Florian Müllner authored
      The request currently mixes up y-align and x-align.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3043>
      (cherry picked from commit c8dae246)
      c0a74aca
  7. Dec 02, 2023
  8. Dec 01, 2023
  9. Nov 30, 2023
    • Florian Müllner's avatar
      status/volume: Always look up device objects · d4e5ec0b
      Florian Müllner authored
      Gvc may clean its device cache after we set up the device menu,
      which can lead to failed assertions when using the "old" object
      to later switch the device from a callback.
      
      Make sure this doesn't happen by looking up the ID again from
      the callback.
      
      Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7173
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3011>
      (cherry picked from commit 7a04d92b)
      d4e5ec0b
    • Julian Sparber's avatar
      st/viewport: Set adjustment properties all at once · e8cdf361
      Julian Sparber authored and Florian Müllner's avatar Florian Müllner committed
      This ensures that that property changes are notified all at the same
      time and only after all were set. If we notify too early handlers
      may act on a "broken" viewport.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3023>
      (cherry picked from commit 5b8347f9)
      e8cdf361
    • Julian Sparber's avatar
      st/adjustment: Ensure changed signal emission is compressed · 36336826
      Julian Sparber authored and Florian Müllner's avatar Florian Müllner committed
      The docs say that `st_adjustment_set_values()` emits the `changed`
      signal only once but it's actually emitted for each changed property,
      this uses the `dispatch_properties_changed` vfunc to emit the `changed`
      signal only per call to `st_adjustment_set_values()`. As a positive
      side effect this also makes it possible to use `g_object_freeze/thaw_notify`
      to compress the `changed` signal emission when using the setters for
      properties.
      
      This also fixes the wrong emission of the `changed` signal in
      `st_adjustment_set_values()` when only the `value` property is changed.
      
      Side note: the code is heavily inspired by GtkAdjustment
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3023>
      (cherry picked from commit 78eb5f2a)
      36336826
    • Jonas Dreßler's avatar
      st/scroll-view: Hide scroll bar from layout when its hidden · e7b68505
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      We hide scrollbars with POLICY_AUTOMATIC when the content of the scroll
      view fits completely inside the view without having to scroll. In this case
      it seems like a good idea to give the content the full available size
      without subtracting scroll bars from that size.
      
      So subtract the scroll bar from the size we give to the child only when
      the scroll bar is actually visible, when it's invisible subtract 0 instead.
      
      Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2190>
      (cherry picked from commit 65e56183)
      e7b68505
    • Jonas Dreßler's avatar
      st/scroll-view: Allocate the scrollbars 0-size instead of not painting them · 1e5c7919
      Jonas Dreßler authored and Florian Müllner's avatar Florian Müllner committed
      StScrollView applies the policy of whether to show or hide the scroll
      bar,
      and with the AUTOMATIC policy the scroll bar should be hidden as soon as
      the
      content of the scroll view is small enough to fit without scrolling.
      
      Now we only know about the final size of the content when we're inside
      st_scroll_view_allocate(), so that's where we can decide whether the
      scroll
      bar should be visible or not. Clutter really doesn't like calling
      clutter_actor_show/hide() in the middle of an allocation cycle though,
      so
      what we do instead is saving the state into priv->vscrollbar_visible,
      and
      then just not painting the scroll bar based on that in a paint() vfunc
      override.
      
      This approach is not great for several reasons, it means we also have to
      override pick() and finally it means the paint volume of the scroll bar
      is
      incorrect.
      
      While the greatest solution to this would be to just hide/show the
      scroll
      bar inside the allocate() function as it is possible in gtk, we have an
      established pattern for this kind of case too: We usually allocate a
      0-sized
      rect for the thing we want to hide, so let's do that instead.
      
      A nice side effect is that we can conveniently drop another paint() and
      pick() vfunc override.
      
      Part-of:
      <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2190>
      (cherry picked from commit a59a992d)
      1e5c7919
    • Sebastian Keller's avatar
      main: Move g_setenv() calls before calls that may start threads · a03769c2
      Sebastian Keller authored and Florian Müllner's avatar Florian Müllner committed
      setenv() is not thread-safe and must happen before starting threads. The
      g_setenv() calls in main() happened after meta_context_configure(),
      which will start a thread via meta_profiler_new() which in its init
      calls g_bus_get().
      
      Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6974
      Part-of:
      <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3018>
      (cherry picked from commit 8d7dc098)
      a03769c2