Commit graph

9257 commits

Author SHA1 Message Date
Keyu Tao
6942058e37 windowManager: Add "opacity: 0" to minimize ease animation
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 5d1a0cc525)
2024-02-11 21:21:46 +01:00
Florian Müllner
76954cbfd2 dbusService: Don't double-wrap remote errors
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 a5d33026f0)
2024-02-11 21:21:37 +01:00
Suryashankar Das
17a6dbd909 overview: Hide search results while leaving overview
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 3cb1fb7428)
2024-02-11 21:21:19 +01:00
Florian Müllner
113bccef20 unlockDialog: Only show switch-user button for multiple users
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 756f212d66)
2024-02-11 21:21:07 +01:00
Jonas Dreßler
470439124f main: Only restore key focus on pop when modal actor is still focused
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 4d544d7b56)
2024-02-11 21:21:00 +01:00
Jonas Dreßler
37dbc370ee closeDialog: Actually set key focus to button when grabbing key focus
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 de834fe307)
2024-02-11 21:20:53 +01:00
Florian Müllner
95a2ea93ad boxpointer: Clamp alignments to expected range
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 d0b2351036)
2024-02-11 21:20:40 +01:00
Florian Müllner
b7ddc8527f boxpointer: Swap arrow alignment on RTL
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 4e70315fbb)
2024-02-11 21:20:31 +01:00
Florian Müllner
80f4b3c97d windowManager: Keep dim effect in overview
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 7b4054564e)
2024-02-11 21:20:22 +01:00
Florian Müllner
094d8954cb closeDialog: Close existing dialogs on shutdown
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 17b7162121)
2024-02-11 21:19:11 +01:00
Jonian Guveli
117aae395f appMenu: Move setApp to null before destroy
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 6615d69985)
2024-01-06 22:55:23 +01:00
Julian Sparber
98c29ff3aa panel: Ensure signal is disconnected when the panel is destroyed
This fixes a warning when terminating GNOME Shell

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3064>
(cherry picked from commit b66dee80f6)
2024-01-06 22:53:34 +01:00
Florian Müllner
f45330e708 windowPreview: Don't hide overlay while hovering icon
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 39d2988865)
2024-01-06 22:52:30 +01:00
Florian Müllner
d4e5ec0bac status/volume: Always look up device objects
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 7a04d92bc0)
2023-11-30 19:18:25 +01:00
Sebastian Keller
18f288bb51 keyboard: Fix backspace not getting released after deleting preedit
When deleting is toggled while a preedit string is present, this causes
_toggleDelete() to use keyvalPress(). After the entire preedit string
has been deleted, _toggleDelete() will no longer hit the code path that
would call keyvalRelease() due to hasPreedit() now being false.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7171
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3009>
(cherry picked from commit 4722dd0d32)
2023-11-30 19:13:30 +01:00
Carlos Garnacho
adc9f459c2 networkAgent: Fetch environment from launch context before spawn_async()
This will fetch the right environment for the launched application,
without using GNOME Shell's environment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2993>
(cherry picked from commit a93465ed69)
2023-11-30 19:12:57 +01:00
Carlos Garnacho
9146293b26 misc: Fetch environment from launch context before spawn_async()
This will fetch the right environment for the launched application,
without using GNOME Shell's environment.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2993>
(cherry picked from commit 7b1223a254)
2023-11-30 19:12:49 +01:00
Sebastian Keller
60ce3b23d8 search: Allow grid using search providers to specify maximum of results
When GridSearchResults::_getMaxDisplayedResults() is called after the
first character has been entered in the search, GridSearchResults has
no children yet. _getMaxDisplayedResults() tries to determine the
maximum number of search results based on how often the largest child
would fit into the allocated size or -1 (i.e. no limit) if there are no
children. So for the initial search there is no limit and in the app
search all matching apps get added as possible results, which due to the
search term being only a single character is almost all installed apps.
This now causes allocation to be run for all these results, despite the
vast majority of them never being visible, which on slower machines can
cause noticeable delays before the search results are displayed.

This now adds the ability for search providers to specify a maximum
number of results that gets used instead of -1 when specified. By being
provider specific this means extensions implementing their own providers
will not be affected by this.

Further this sets the maximum for the app search provider to 6 as per
the current designs.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7155
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3004>
(cherry picked from commit 9153876764)
2023-11-30 19:12:15 +01:00
Sebastian Keller
5f8210de5d popupMenu: Only connect to notify::key-focus when needed
PopupMenuManager was connecting to notify::key-focus on the stage on
construction, but only ever reacting to it when one of its menus was
open. Given that every single app icon and text entry creates a
PopupMenuManager this was causing a lot of these handlers to be created.
Every single handler meant calling into JS code only for the vast
majority of them to determine that they would not do anything.

Additionally these handlers were leaked for the whole lifetime of the
stage due to never getting disconnected.

This now only connects the handler when a menu is open and disconnects
again when it is closed, significantly reducing the number of active
handlers at a time.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/7143
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3001>
(cherry picked from commit f1b7af2ab0)
2023-11-30 19:10:42 +01:00
Florian Müllner
fe45754550 config: Add missing semicolon
The .in file isn't valid javascript, so it's excluded from eslint
and style issues like this can slip through.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/3005>
(cherry picked from commit 5fa08fe533)
2023-11-30 19:09:11 +01:00
Sebastian Keller
495967905c calendar: Emit selected-date-changed before rebuilding the calendar
If the cursor was placed on one of the widgets that get removed when
rebuilding the calendar due to a month change, destroying the hovered
widget will trigger a repick. This repick can then trigger an allocation
while not all buttons of the calendar are present.

If the last allocation before selected-date-changed is emitted was from
such an incomplete state, DateMenuButton will still freeze the layout in
this state in its signal handler.

What freezing the layout in DateMenuButton is supposed to do is to
prevent size changes of the menu when changing days, but for this the
layout needs to be frozen before potentially rebuilding calendar. This
change ensures that by emitting the signal earlier.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5411
Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5469
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2989>
(cherry picked from commit 23bcff3348)
2023-11-01 00:20:59 +01:00
robert.mader@collabora.com
958616fd16 overview: Handle unredirection in OverviewShown state machine
Under certain unknown circumstances currently not every
`disable_unredirect_for_display()` gets matched with an
`enable_unredirect_for_display()` when closing the overview.

As we only want to not disable unredirection when hidden and we nowadays
have a state machine that ensures we transition to and from one state to
another only once, handle unredirection en-/disablement as part of the
state transition.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2970>

(cherry picked from commit a94fcee961)
2023-09-27 12:29:30 +02:00
Khalid Abu Shawarib
9be6db83a3 slider: Reverse handle direction in RTL
Rework slider handle to reverse directions when the slider is
Right-to-Left.

Fixes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5107
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2943>
(cherry picked from commit 405b549a05)
2023-09-16 09:44:38 +00:00
Khalid Abu Shawarib
d430f4dc65 barLevel: Reverse direction in RTL
Rework drawing and calculations to reverse the bar direction
when the bar is Right-to-Left.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2943>
(cherry picked from commit c777425d39)
2023-09-16 09:44:38 +00:00
xiaofan
c634612560 ibusManager: Add missing environment variables required to launch ibus-daemon
IBus requires XAUTHORITY and XDG_RUNTIME_DIR to be able to spawn its XIM
implementation correctly. Using launch context to get environment can correctly
launch on non-systemd setups.

Closes: #6998

Signed-off-by: xiaofan <xiaofan@iscas.ac.cn>
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2947>
(cherry picked from commit 050d0e10c7)
2023-09-16 09:44:38 +00:00
Carlos Garnacho
0c6eaac0a1 keyboard: Only reset to the default level on unlocked latched levels
Reportedly, non-alphanumeric key levels were able to stick by
happenstance, and let the user press multiple keys until explicitly
switching to a different mode. Reportedly, this broke, switching to
the default level after the first key press on the additional levels.

Since we have this information in the OSK key models (each level has
a "mode" field to either default/latched/locked), retrieve this
information for them for each level, and only reset to the default
level if on one of those latched levels, and the relevant key was not
locked through long-press.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/5763
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2945>
(cherry picked from commit bc3b890e75)
2023-09-16 09:44:38 +00:00
Carlos Garnacho
d7d502225e keyboard: Reset latched levels on string commit on all situations
The _commitAction() paths have early returns, which made resetting the
latched mode inconsistent depending on the paths taken to commit the
string. This made latched modes not return to normal on e.g. Shell
entries.

Make this happen outside the function, and after the only calling
point, so that the level is correctly reset on all situations.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2945>
(cherry picked from commit 08f3ad3835)
2023-09-16 09:44:38 +00:00
Florian Müllner
23e24a4eba screenshot: Only handle mode-switch shortcut when supported
We currently handle the 'v' key to switch between recording- and
screenshot mode regardless of whether screen recordings are
supported.

This is clearly wrong, don't do that.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6990

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2944>
(cherry picked from commit 671df28a50)
2023-09-16 09:44:38 +00:00
Florian Müllner
39b0c0030b screenshot: Do not wrongly enable window button
The window button is disabled when
 - there are no windows
 - we are in screen-recording mode
 - the session mode doesn't allow windows

However the last condition is only taken into account when
opening the dialog, but not when switching from recording-
to screenshot mode.

Address this by updating the button's sensitivity in a separate
function, so the different conditions are considered consistently.

Closes https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6990

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2944>
(cherry picked from commit 521525948e)
2023-09-16 09:44:38 +00:00
Brendan William
dff160678a weather: Prevent setting Geoclue source as location name
Prior to Geoclue v2.7, the location description did not seem to ever be
set. Now, the source used to determine the location is set as the
description. This can result in the location name in dateMenu to be set
as "WiFi", "GeoIP", etc., since we relay the description as the location
name to GWeather. Instead, pass an empty string so GWeather continues
to set the location name itself.

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2729>
(cherry picked from commit ae86b58d59)
2023-08-22 15:18:06 +02:00
Chris Heywood
9039afa4fc messageList: Allow dismissal via backspace
Currently only the delete key can be used to dismiss notifications.
Some laptops don't have delete keys, resulting in needing to hit a
modifier to trigger delete.

Plus, on those keyboards that do have delete keys they're often a
little harder to strike than backspace.

https://gitlab.gnome.org/gnome/gnome-shell/-/issues/5789

Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2435>
(cherry picked from commit f119e5282b)
2023-08-22 15:15:07 +02:00
Carlos Garnacho
53b796c86e inputMethod: Check that there is an existing cursor location
Commit 17d9ec5788 made the input method call update() more eagerly,
but also at times that it does not have a cursor position yet. Make
it bail out correctly in that situation.

Fixes: 17d9ec5788 ("inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out")
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2876>

(cherry-picked from commit 5e36a06835)
2023-08-21 17:04:43 +02:00
Takao Fujiwara
a9974ea52b inputMethod: Keep Capabilite.FOCUS before context.focus_in/focus_out
If context.focus_out() is called *after* context.set_capabilities(0),
The FocusOut D-Bus method is ignored because of no FOCUS capability.
If context.focus_out() is called *before* context.set_capabilities(0),
The 0 capability is set to the next focused context and the
FocusIn D-Bus method is ignored because of no FOCUS capability.
So context.set_capabilities(0) should not be called.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6415
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2666>
2023-08-08 12:30:59 +02:00
Takao Fujiwara
9320b65e2d inputMethod: Try to connect require-surrounding-text signal
require-surrounding-text signal has been added since IBus 1.5.28.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6405
Part-of:
<https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2668>
(cherry picked from commit 1cfaa2379d)
2023-08-08 12:21:39 +02:00
Lukáš Tyrychtr
0149f57ef5 a11y: Don't create a parent loop for quick settings sliders
Rather than returning the parent container of the slider, which presents
itself as the slider, return the parent of the slider container.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6686

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2762>
(cherry picked from commit a5cf08ac55)
2023-08-08 12:07:36 +02:00
Florian Müllner
bfbe394b0f lookingGlass: Handle unprintable object
We currently throw an error when encountering a result that cannot
be represented as string, with the prompt appearing somewhat stuck
(the input cannot be committed).

Showing a lame fallback instead at least avoids that issue. When
the object has a typeof 'object' but is not an instanceof Object,
we are likely dealing with an ES module, and can show a slightly
less lame fallback.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2842>
(cherry picked from commit 03025d7cff)
2023-08-08 12:07:36 +02:00
Florian Müllner
2e8a2dcafe Revert "screencastService: Add dmabuf/GL pipeline"
The pipeline contains a GST plugin that pops up an unclosable
window. That's utterly confusing, so back out of the change
until this is figured out.

This reverts commit b916ced2e6.
Related: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6763
2023-07-04 16:20:06 +02:00
Florian Müllner
b409084c9c workspace: Reapply border radius on background changes
The rounded corner effect is applied to the background actor, so
we have to reapply the correct values when the background changes
for the corners to persist.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/4125

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2801>
(cherry picked from commit aa11d90693)
2023-07-04 15:36:01 +02:00
Florian Müllner
624c709bed parentalControlsManager: Don't log error when disabled
We currently special-case the DISABLED error when initializing
filtering, but not on app filter changes.

While it seems reasonable that Malcontent.Manager wouldn't emit
the signal while disabled, that's not actually true: It is emitted
when any user account information tracked by AccountsServices
changes.

Even if the signal were limited to changes of the ParentalControls
extension, it would still get emitted when app filtering *becomes*
disabled.

So regardless of potential improvements in libmalcontent itself,
we should filter out the DISABLED consistently, both when creating
the initial filter and when updating it.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6749

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2796>
(cherry picked from commit 593f659a73)
2023-07-04 15:35:38 +02:00
Андрей Гриценко
43c498f263 magnifier: Fix cursor offset
Commit c449058d44 changed the pointer clone to use a single
actor. However that broke applying the hotspot translation to the
position, so the magnified cursor is now displayed with a shift.

Undo the change to restore the old behavior.

This reverts commit c449058d44.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2780>
(cherry picked from commit ae24b0247e)
2023-07-04 15:35:22 +02:00
Daniel Drake
ee9d4d608a ibusManager: Close candidate popup upon engine change
The IBusCandidatePopup can get 'stuck' in an active, visible state if
it is on-screen at the point when the input method is changed to a method
that doesn't use such popup (e.g. regular English).

Force the candidate popup to close when the engine is changed.
It will reappear (via regular lookup table update signal) if/when it is
next required.

Closes: https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6717
Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2774>
(cherry picked from commit fa34d30d3e)
2023-06-01 17:48:21 +02:00
Zacharie DUBRULLE
6321ab363e dnd: Don't leak a signal connection
The handler is currently leaked when a drag monitor stops a
motion event.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2770>
(cherry picked from commit d7542db38c)
2023-06-01 17:48:07 +02:00
Joan Torres
9963ef1f09 polkitAgent: Fix closing dialog properly
When pressing the close button on the dialog the polkit request isn't
completed leaving the polkit agent blocked unable to handle new
requests.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2761>
(cherry picked from commit c57f4a1c73)
2023-06-01 17:46:36 +02:00
Florian Müllner
b0baf0fd15 status/bluetooth: Use 'Alias' for item labels
Unlike 'Name', the 'Alias' property can be changed by the user,
so it's more suitable for user-visible labels.

https://gitlab.gnome.org/GNOME/gnome-shell/-/issues/6626

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2751>
(cherry picked from commit 9711a918e7)
2023-06-01 17:45:23 +02:00
robert.mader@collabora.com
05bd285b97 screencastService: Fix 'pipeline' option
When introducing the pipeline fallback mechanism, support for defining a
custom pipeline was unintentionally dropped, breaking extensions such as
EasyScreenCast.

Fixes 9cb40c4814

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2782>

(cherry picked from commit e1145defa9)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
fd99d3f03f screencastService: Fixup pipeline fallback behavior
Calling _teardownPipeline() before _tryNextPipeline() was actually not a
good idea, it sets the pipelineState to STOPPED, which means we can't try
any of the following pipelines anymore.

Instead what we want to do is set the pipeline state of the old pipeline to
NULL when trying a new one, without calling _teardownPipeline() for that.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2754>

(cherry picked from commit 846bb84ff6)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
03d0d79a75 screenshot: Remove leftover code in property getter
According to Ivan (author of that piece of code), this is most likely a
leftover from a refactor and has no purpose anymore, so remove it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2753>

(cherry picked from commit 6476e62bff)
2023-05-31 00:32:00 +02:00
robert.mader@collabora.com
492a846014 screencastService: Add dmabuf/GL pipeline
This pipeline imports dmabufs and does format conversion using GL.
The `video/x-raw(memory:DMABuf)` filter ensures format negotiation
between `pipewiresrc` and Mutter will only succeed if Mutter advertises
dmabuf support as well, falling back to the next pipeline otherwise.

Using this pipeline frees Mutter from downloading buffer content on the
main thread which can have a big impact on compositor performance.
Doing format conversion on the GPU should further improve the overall
performance on most hardware.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2597>

(cherry picked from commit b916ced2e6)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
31dfb3cbab screenshot: Also handle dbus service crashes
When the screencast dbus service crashes due to gstreamer, we should also
handle that and not pretend to continue recording.

Let's listen to g-name-owner changes for that and then also send a
notification about it.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

(cherry picked from commit fd730a4db7)
2023-05-31 00:32:00 +02:00
Jonas Dreßler
31571ba448 screenshot: Handle screencast errors properly
Send a notification and remove the screencast inidicator when we hear about
a screencast error from the dbus service.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2752>

(cherry picked from commit 99923ac612)
2023-05-31 00:32:00 +02:00