for programs that cannot be restarted by simply exec-ing them such as the
KIO slaves which require application socket as argument
note that restarting is maybe works thing - programs started by kdesudo
cannot be restarted (properly) as they are exec-ed by other program that
does the setup for them to function the way they should
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
generally, those signals should not be blocked but it seems something is
blocking consequent SIGSEGV signals send by `kill` for example
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
once KIO slaves are plugins it would not matter tho (KApplication sets the
KCrash::DrKonqi flag already) but for now since they are detached
process poping drkonqi in case they crash (and KDE_DEBUG is set) is more
usefull than printing trace to stderr
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
now it works as expected when the arrow keys are pressed or when its
position is changed by clicking while having the mouse cursor on either
side of the current position
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
using the mask created by QPixmap::mask() is much more reliable way
to get one, fixes masking in case compositor is not active for example
side note: feels good to finally land the fix for masking
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
because Plasma::Theme (and Plasma::ThemePrivate indirectly) may be created
before QCoreApplication/QApplication instance by Theme::defaultTheme()
and application instance is required for QX11Info::display() to return
non-null (which KWindowSystem uses but has fallback in case it is null
in KWindowSystem::compositingActive())
note that KWindowSystem::compositingActive() returns cached value if
XFixes is available
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
this was done only when there was pool socket (when klauncher was handling
slaves) but it has to be done anyway to prevent more tasks (commands) from
being send after error occurs
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
with klauncher no longer responsible for KIO slave the next step is to
make them plugins and the feature to put them on hold will be of no value
because QLibrary reuses library/plugin instances and creating a new
slave object will be cheap
in other words the performance will be similar to that of KFileMetaInfo
for which I also wrote the plugins myself - they are pretty quick
compared to what strigi was doing and with more flexible configuration
interface but it took some effort to get there
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
for Katana that does not do much tho, applications that have
X-DBUS-StartupType set to Unique use KUniqueApplication which does the
neccessary checks to make sure another instance is not started
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
since any message type can be set to log via syslog() that may be the only
way to know when a program without interface (such as service) crashes
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
`apt-file` search yeilds 221 files matching (8 packages provide such),
it is also unused by plasma even tho there are leftovers from support for it
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
altough the complete program path is more informative, setting it to the
filename only matches the old behaviour
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
much simpler and easier to maintain, also it will be proper D-Bus
service now with no sockets, process title hack and whatnot. KCrash
and startkde script (in kde-workspace repo) have to be adjusted for
it tho
note that the internal KIO scheduler already has the functionality to
put slaves on hold but now they will be started as detached process.
eventually they may become plugins (they are loaded as such by kioslave
program) without event loop dispatcher
fixes application startup notification (ASN) and cleanup issues
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>