Summary:
This introduces a TryIgnoreRuntimes key in taskmanagerrulesrc's Settings
group that can be used to list known runtime executables that can be
ignored when trying to identify the application owning a window by the
command line of the associated process.
A concrete example is the Frozen Bubble application. Frozen Bubble
installs a frozen-bubble.desktop with Exec=frozen-bubble, yet its
WM_CLASS is ("perl", "perl") and its command line is as follows:
/usr/bin/perl /usr/bin/frozen-bubble
The existing servicesFromPid() (now split into servicesFromPid() and
servicesFromCmdLine()) does not find the frozen-bubble service because
it works with the leading executable in the command line.
In this patch, TryIgnoreRuntimes is introduced with a default of
"perl". In the new code, after the initial command line matching pass
fails, TryIgnoreRuntimes is checked for whether the leading command
line executable is on the list, and if so, a second command line
matching pass is run with the remainder of the process' command line,
now succeeding.
Note that the approach of "try one more thing" rather than checking
against TryIgnoreRuntimes first is deliberate: The Exec= key in many
.desktop files contains a complete command line prefixed with the
runtime executable. In those cases we don't want to ignore the runtime
executable, or matching would fail.
To complement this, the "perl" WM_CLASS is added to the
MatchCommandLineFirst rc key. Due to the shoddy metadata Frozen
Bubble already ended up in servicesFromPid() regardless, but this
saves some busywork for this WM_CLASS, which can reliably be presumed
bad.
The patch also fixes a small logic error in the match-command-line-
without-arguments block, where the result of a KServiceTypeTrader
query was ignored and immediately overridden by another.
Reviewers: #plasma, davidedmundson, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5522
Summary:
This is implemented by TasksModel and allows clients to reliably
query whether a row has an associated launcher. Useful for things
like Pin/Unpin action state or layout decisions.
Previously clients would have to reimplement something like
TaskTools::appsMatch on top of the model, which we absolutely do
not want to do - there should only be one copy of the app matching
logic for consistency's sake. In practice clients would do things
like fetch LauncherUrl and run it by launcherPosition(), which
omits appsMatch's AppId comparision, as an example of such unwated
drift. This approach also avoids the large performance overhead
involved.
The role is not implemented by the single-type or munging tasks
models as it has no use there.
Reviewers: #plasma, davidedmundson
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5504
Length is in microseconds, so watching a long video (in excess of 33.3 minutes) will break the slider.
CHANGELOG: Media Controller can now properly handle and seek long tracks (> 30 minutes)
BUG: 377623
FIXED-IN: 5.8.7
is still there and rightfully emits availableScreenRectChanged.
This will cause us to crash when we try to access the no-longer existing containment.
CCBUG: 378508
Differential Revision: https://phabricator.kde.org/D5321
We add our own "Close" item manually. The default quit entry would quit the application
but one Plasma Windowed instance can hold multiple applets each with their own SNI.
Also, add a separator (QMenu is smart enough not to show separators at the beginning of
the list, ie. if there's no applet actions)
Differential Revision: https://phabricator.kde.org/D5333
We've been having the configure button on notifications for a long time but so far it would
only ever invoke KNotification configuration UI with no way for an application to provide
its own, more versatile or extensive, UI.
When an action named "settings" is present in the notification the "configure" button will
instead invoke this action.
Differential Revision: https://phabricator.kde.org/D5424
Without this, that wasn't always the case if the top item was only the mouse
selection. This was presumably broken by 2e47d84772.
Also explicitly check the popup item, since it's now owned by Klipper.
BUG: 348390
BUG: 251222
Summary:
Currently the selected wallpaper is deselected when the "Apply"
button is clicked, as if no wallpaper is selected. This patch
fixes that. I didn't understand what the original restoreIndex
thing was trying to do by passing the count, so I gutted it and
wrote code that makes more sense to me.
Reviewers: #plasma, mart
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5440
81fcdb0ceef4a92b64c84e535bd852d9c5df67a2 (in kde-workspace) commented this
out while removing other uses of KNotification, but this one is actually
useful (especially if a app misbehaves) and certainly belong in ksmserver
and not elsewhere.
Follow-up to the previous commit. KProcess has saner defaults for simply
launching an app and being done with it, no lost stdout/stderr or even SIGPIPE.
CCBUG: 369391
CCBUG: 370528
The "move" (copy in fact) of the autostart code from klauncher simply
switched to QProcess. This resulted in a number of problems, as the incorrect
handling of .desktop file command if it had placeholders (worked around
already), kdeinit is no longer used (not sure how much that matters nowadays)
and finally QProcess simply eats all stdout/stderr of all such processes
(which, when daemonized, can lead even to the processes getting SIGPIPE'd).
If the application to start is a KService, simply launch it as such.
BUG: 369391
BUG: 370528
Summary:
When the TabBox is in the noModifierGrab mode we should activate an
item when being clicked/touched.
Test Plan:
Tested on X11 and Wayland. On Wayland both touch and pointer
work, on X11 only pointer works - requires further investigation.
Reviewers: #kwin, #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5415
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
BUG: 377808
Test Plan:
added and removed sevaral times a primary screen at 0,0
also tried other positions of screens to check it doesn't make regressions
Reviewers: #plasma, sebas, subdiff, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
this is for the following setup:
the primary screen is at position 0,0 and gets disconnected.
the other screen will be moved at 0,0 and becomes primary
the screen is reconnected, the events arrive in the followin order:
1) a new screen gets added, at 0,0 position
(not primary yet, it may be markedredundant)
2) the screen becomes primary, both screens still at 0,0
3) the old screen gets moved out of the way
in the end result none of the two need to be redundant.
adding the old one in the redundant list, will cause reconsideroutputs
to consider it and create a view for it.
Test Plan: added and removed sevaral times a primary screen at 0,0
Reviewers: #plasma, broulik, sebas
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5323
Summary:
Similar to D4893, use a state machine to track the status of the
keyboard and animate the open/close.
this improves also the layout on low and weird resolutions when
there isn't much available space
Test Plan:
tested with many different window sizes, to make sure it
behaves better than before
Reviewers: #plasma, davidedmundson, graesslin, broulik
Reviewed By: #plasma, broulik
Subscribers: apol, plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5254
Summary:
use a state machine to define in a cleaner way
the layout of the lock screen when the keyboard is
open on closed. animate between the state changes with
a slide animation
Depends on D4870
Test Plan:
tested opening the keyboard with different screen locker sizes
to see the text field and the button always stay visible
Reviewers: graesslin, #plasma, broulik
Reviewed By: #plasma, broulik
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D4893
This way Folder View could use the root item for its heading instead of special-casing it for desktop:/
Differential Revision: https://phabricator.kde.org/D5221
Summary:
In the system tray we have a header at the top and the icons on the
left.
When there is no applet selected we want the icons to take up the full
width, because of this they have to start off under the title.
When an applet is selected we want these icons to dock to the left, but
not change their y position. The title then becomes the title of the
active applet.
If the active applet's title wraps this results in the icons moving all
over the place. See image in bug report.
This patch uses two text fields and toggles visibility so that we can
always align the icons to a consistent point
BUG: 378194
Test Plan:
Opened system tray with the arrow
Clicked on an applet and back
Opened system tray by clicking on applet
Reviewers: #plasma
Subscribers: plasma-devel
Tags: #plasma
Differential Revision: https://phabricator.kde.org/D5300