Fix the most egregious style guide violations in the remaining kdesktop_lock source files

No functional changes were made to the source
pull/2/head
Timothy Pearson 9 years ago
parent b5462e86f3
commit e89d9e5e16

@ -1,6 +1,6 @@
//===========================================================================
//
// This file is part of the KDE project
// This file is part of the TDE project
//
// Copyright (c) 2004 Chris Howells <howells@kde.org>
@ -33,88 +33,88 @@ extern bool trinity_desktop_lock_use_system_modal_dialogs;
AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog", true, (trinity_desktop_lock_use_system_modal_dialogs?((WFlags)WStyle_StaysOnTop):((WFlags)WX11BypassWM)))
{
if (trinity_desktop_lock_use_system_modal_dialogs) {
// Signal that we do not want any window controls to be shown at all
Atom kde_wm_system_modal_notification;
kde_wm_system_modal_notification = XInternAtom(tqt_xdisplay(), "_TDE_WM_MODAL_SYS_NOTIFICATION", False);
XChangeProperty(tqt_xdisplay(), winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
}
setCaption(i18n("Automatic Logout Notification"));
if (trinity_desktop_lock_use_system_modal_dialogs) {
// Signal that we do not want any window controls to be shown at all
Atom kde_wm_system_modal_notification;
kde_wm_system_modal_notification = XInternAtom(tqt_xdisplay(), "_TDE_WM_MODAL_SYS_NOTIFICATION", False);
XChangeProperty(tqt_xdisplay(), winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
}
setCaption(i18n("Automatic Logout Notification"));
frame = new TQFrame(this);
if (trinity_desktop_lock_use_system_modal_dialogs)
frame->setFrameStyle( TQFrame::NoFrame );
else
frame->setFrameStyle(TQFrame::Panel | TQFrame::Raised);
frame->setLineWidth(2);
frame = new TQFrame(this);
if (trinity_desktop_lock_use_system_modal_dialogs) {
frame->setFrameStyle( TQFrame::NoFrame );
}
else {
frame->setFrameStyle(TQFrame::Panel | TQFrame::Raised);
}
frame->setLineWidth(2);
TQLabel *pixLabel = new TQLabel( frame, "pixlabel" );
pixLabel->setPixmap(DesktopIcon("system-log-out"));
TQLabel *pixLabel = new TQLabel( frame, "pixlabel" );
pixLabel->setPixmap(DesktopIcon("system-log-out"));
TQLabel *greetLabel = new TQLabel(i18n("<nobr><qt><b>Automatic Log Out</b></qt><nobr>"), frame);
TQLabel *infoLabel = new TQLabel(i18n("<qt>To prevent being logged out, resume using this session by moving the mouse or pressing a key.</qt>"), frame);
TQLabel *greetLabel = new TQLabel(i18n("<nobr><qt><b>Automatic Log Out</b></qt><nobr>"), frame);
TQLabel *infoLabel = new TQLabel(i18n("<qt>To prevent being logged out, resume using this session by moving the mouse or pressing a key.</qt>"), frame);
mStatusLabel = new TQLabel("<b> </b>", frame);
mStatusLabel->setAlignment(TQLabel::AlignCenter);
mStatusLabel = new TQLabel("<b> </b>", frame);
mStatusLabel->setAlignment(TQLabel::AlignCenter);
TQLabel *mProgressLabel = new TQLabel("Time Remaining:", frame);
mProgressRemaining = new TQProgressBar(frame);
mProgressRemaining->setPercentageVisible(false);
TQLabel *mProgressLabel = new TQLabel("Time Remaining:", frame);
mProgressRemaining = new TQProgressBar(frame);
mProgressRemaining->setPercentageVisible(false);
TQVBoxLayout *unlockDialogLayout = new TQVBoxLayout( this );
unlockDialogLayout->addWidget( frame );
TQVBoxLayout *unlockDialogLayout = new TQVBoxLayout( this );
unlockDialogLayout->addWidget( frame );
frameLayout = new TQGridLayout(frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint());
frameLayout->addMultiCellWidget(pixLabel, 0, 2, 0, 0, Qt::AlignCenter | Qt::AlignTop);
frameLayout->addWidget(greetLabel, 0, 1);
frameLayout->addWidget(mStatusLabel, 1, 1);
frameLayout->addWidget(infoLabel, 2, 1);
frameLayout->addWidget(mProgressLabel, 3, 1);
frameLayout->addWidget(mProgressRemaining, 4, 1);
frameLayout = new TQGridLayout(frame, 1, 1, KDialog::marginHint(), KDialog::spacingHint());
frameLayout->addMultiCellWidget(pixLabel, 0, 2, 0, 0, Qt::AlignCenter | Qt::AlignTop);
frameLayout->addWidget(greetLabel, 0, 1);
frameLayout->addWidget(mStatusLabel, 1, 1);
frameLayout->addWidget(infoLabel, 2, 1);
frameLayout->addWidget(mProgressLabel, 3, 1);
frameLayout->addWidget(mProgressRemaining, 4, 1);
// get the time remaining in seconds for the status label
mRemaining = COUNTDOWN * 25;
// get the time remaining in seconds for the status label
mRemaining = COUNTDOWN * 25;
mProgressRemaining->setTotalSteps(COUNTDOWN * 25);
mProgressRemaining->setTotalSteps(COUNTDOWN * 25);
updateInfo(mRemaining);
updateInfo(mRemaining);
mCountdownTimerId = startTimer(1000/25);
mCountdownTimerId = startTimer(1000/25);
connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity()));
connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity()));
setFixedSize( sizeHint() );
setFixedSize( sizeHint() );
}
AutoLogout::~AutoLogout()
{
hide();
hide();
}
void AutoLogout::updateInfo(int timeout)
{
mStatusLabel->setText(i18n("<nobr><qt>You will be automatically logged out in 1 second</qt></nobr>",
"<nobr><qt>You will be automatically logged out in %n seconds</qt></nobr>",
timeout / 25) );
mProgressRemaining->setProgress(timeout);
mStatusLabel->setText(i18n("<nobr><qt>You will be automatically logged out in 1 second</qt></nobr>",
"<nobr><qt>You will be automatically logged out in %n seconds</qt></nobr>",
timeout / 25) );
mProgressRemaining->setProgress(timeout);
}
void AutoLogout::timerEvent(TQTimerEvent *ev)
{
if (ev->timerId() == mCountdownTimerId)
{
updateInfo(mRemaining);
--mRemaining;
if (mRemaining < 0)
{
logout();
if (ev->timerId() == mCountdownTimerId) {
updateInfo(mRemaining);
--mRemaining;
if (mRemaining < 0) {
logout();
}
}
}
}
void AutoLogout::slotActivity()
{
accept();
accept();
}
void AutoLogout::logout()
@ -125,8 +125,8 @@ void AutoLogout::logout()
void AutoLogout::show()
{
TQDialog::show();
TQApplication::flushX();
TQDialog::show();
TQApplication::flushX();
}
#include "autologout.moc"

@ -1,6 +1,6 @@
//===========================================================================
//
// This file is part of the KDE project
// This file is part of the TDE project
//
// Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
// Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
@ -22,29 +22,29 @@ class TQProgressBar;
class AutoLogout : public TQDialog
{
Q_OBJECT
public:
AutoLogout(LockProcess *parent);
~AutoLogout();
virtual void show();
protected:
virtual void timerEvent(TQTimerEvent *);
private slots:
void slotActivity();
private:
void updateInfo(int);
TQFrame *frame;
TQGridLayout *frameLayout;
TQLabel *mStatusLabel;
int mCountdownTimerId;
int mRemaining;
TQTimer countDownTimer;
TQProgressBar *mProgressRemaining;
void logout();
Q_OBJECT
public:
AutoLogout(LockProcess *parent);
~AutoLogout();
virtual void show();
protected:
virtual void timerEvent(TQTimerEvent *);
private slots:
void slotActivity();
private:
void updateInfo(int);
TQFrame *frame;
TQGridLayout *frameLayout;
TQLabel *mStatusLabel;
int mCountdownTimerId;
int mRemaining;
TQTimer countDownTimer;
TQProgressBar *mProgressRemaining;
void logout();
};
#endif

@ -1,7 +1,7 @@
/* This file is part of the KDE project
/* This file is part of the TDE project
Copyright (C) 1999 David Faure
Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
Copyright (c) 2010-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
Copyright (c) 2010-2015 Timothy Pearson <kb9vqf@pearsoncomputing.net>
This library is free software; you can redistribute it and/or
modify it under the terms of the GNU Library General Public
@ -88,462 +88,463 @@ bool trinity_desktop_lock_settings_initialized = FALSE;
static void sigusr1_handler(int)
{
signalled_forcelock = TRUE;
signalled_forcelock = TRUE;
}
static void sigusr2_handler(int)
{
signalled_dontlock = TRUE;
signalled_dontlock = TRUE;
}
static void sigusr3_handler(int)
{
signalled_securedialog = TRUE;
signalled_securedialog = TRUE;
}
static void sigusr4_handler(int)
{
signalled_blank = TRUE;
signalled_blank = TRUE;
}
static void sigusr5_handler(int)
{
signalled_run = TRUE;
signalled_run = TRUE;
}
static int trapXErrors(Display *, XErrorEvent *)
{
return 0;
return 0;
}
bool MyApp::x11EventFilter( XEvent *ev )
{
if (ev->type == ButtonPress || ev->type == ButtonRelease || ev->type == MotionNotify) {
emit mouseInteraction(ev);
}
if (ev->type == XKeyPress || ev->type == ButtonPress) {
emit activity();
}
else if (ev->type == MotionNotify) {
time_t tick = time( 0 );
if (tick != lastTick) {
lastTick = tick;
emit activity();
}
}
else if (ev->type == MapNotify) {
// HACK
// Hide all tooltips and notification windows
XMapEvent map_event = ev->xmap;
XWindowAttributes childAttr;
Window childTransient;
if (XGetWindowAttributes(map_event.display, map_event.window, &childAttr) && XGetTransientForHint(map_event.display, map_event.window, &childTransient)) {
if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(map_event.window)) {
trinity_desktop_lock_hidden_window_list.append(map_event.window);
}
XLowerWindow(map_event.display, map_event.window);
XFlush(map_event.display);
}
}
}
else if (ev->type == VisibilityNotify) {
// HACK
// Hide all tooltips and notification windows
XVisibilityEvent visibility_event = ev->xvisibility;
XWindowAttributes childAttr;
Window childTransient;
if ((visibility_event.state == VisibilityUnobscured) || (visibility_event.state == VisibilityPartiallyObscured)) {
if (XGetWindowAttributes(visibility_event.display, visibility_event.window, &childAttr) && XGetTransientForHint(visibility_event.display, visibility_event.window, &childTransient)) {
if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(visibility_event.window)) {
trinity_desktop_lock_hidden_window_list.append(visibility_event.window);
}
XLowerWindow(visibility_event.display, visibility_event.window);
XFlush(visibility_event.display);
}
}
}
}
else if (ev->type == CreateNotify) {
// HACK
// Close all tooltips and notification windows
XCreateWindowEvent create_event = ev->xcreatewindow;
XWindowAttributes childAttr;
Window childTransient;
// XGetWindowAttributes may generate BadWindow errors, so make sure they are silently ignored
int (*oldHandler)(Display *, XErrorEvent *);
oldHandler = XSetErrorHandler(trapXErrors);
if (XGetWindowAttributes(create_event.display, create_event.window, &childAttr) && XGetTransientForHint(create_event.display, create_event.window, &childTransient)) {
if ((childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(create_event.window)) {
trinity_desktop_lock_hidden_window_list.append(create_event.window);
}
XLowerWindow(create_event.display, create_event.window);
XFlush(create_event.display);
}
}
XSetErrorHandler(oldHandler);
}
else if (ev->type == DestroyNotify) {
XDestroyWindowEvent destroy_event = ev->xdestroywindow;
if (trinity_desktop_lock_hidden_window_list.contains(destroy_event.window)) {
trinity_desktop_lock_hidden_window_list.remove(destroy_event.window);
}
}
if (ev->type == ButtonPress || ev->type == ButtonRelease || ev->type == MotionNotify) {
emit mouseInteraction(ev);
}
if (ev->type == XKeyPress || ev->type == ButtonPress) {
emit activity();
}
else if (ev->type == MotionNotify) {
time_t tick = time( 0 );
if (tick != lastTick) {
lastTick = tick;
emit activity();
}
}
else if (ev->type == MapNotify) {
// HACK
// Hide all tooltips and notification windows
XMapEvent map_event = ev->xmap;
XWindowAttributes childAttr;
Window childTransient;
if (XGetWindowAttributes(map_event.display, map_event.window, &childAttr) && XGetTransientForHint(map_event.display, map_event.window, &childTransient)) {
if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(map_event.window)) {
trinity_desktop_lock_hidden_window_list.append(map_event.window);
}
XLowerWindow(map_event.display, map_event.window);
XFlush(map_event.display);
}
}
}
else if (ev->type == VisibilityNotify) {
// HACK
// Hide all tooltips and notification windows
XVisibilityEvent visibility_event = ev->xvisibility;
XWindowAttributes childAttr;
Window childTransient;
if ((visibility_event.state == VisibilityUnobscured) || (visibility_event.state == VisibilityPartiallyObscured)) {
if (XGetWindowAttributes(visibility_event.display, visibility_event.window, &childAttr) && XGetTransientForHint(visibility_event.display, visibility_event.window, &childTransient)) {
if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(visibility_event.window)) {
trinity_desktop_lock_hidden_window_list.append(visibility_event.window);
}
XLowerWindow(visibility_event.display, visibility_event.window);
XFlush(visibility_event.display);
}
}
}
}
else if (ev->type == CreateNotify) {
// HACK
// Close all tooltips and notification windows
XCreateWindowEvent create_event = ev->xcreatewindow;
XWindowAttributes childAttr;
Window childTransient;
// XGetWindowAttributes may generate BadWindow errors, so make sure they are silently ignored
int (*oldHandler)(Display *, XErrorEvent *);
oldHandler = XSetErrorHandler(trapXErrors);
if (XGetWindowAttributes(create_event.display, create_event.window, &childAttr) && XGetTransientForHint(create_event.display, create_event.window, &childTransient)) {
if ((childAttr.override_redirect) && (childTransient)) {
if (!trinity_desktop_lock_hidden_window_list.contains(create_event.window)) {
trinity_desktop_lock_hidden_window_list.append(create_event.window);
}
XLowerWindow(create_event.display, create_event.window);
XFlush(create_event.display);
}
}
XSetErrorHandler(oldHandler);
}
else if (ev->type == DestroyNotify) {
XDestroyWindowEvent destroy_event = ev->xdestroywindow;
if (trinity_desktop_lock_hidden_window_list.contains(destroy_event.window)) {
trinity_desktop_lock_hidden_window_list.remove(destroy_event.window);
}
}
#if 0
else if (ev->type == CreateNotify) {
// HACK
// Close all tooltips and notification windows
XCreateWindowEvent create_event = ev->xcreatewindow;
XWindowAttributes childAttr;
Window childTransient;
if (XGetWindowAttributes(create_event.display, create_event.window, &childAttr) && XGetTransientForHint(create_event.display, create_event.window, &childTransient)) {
if ((childAttr.override_redirect) && (childTransient)) {
XDestroyWindow(create_event.display, create_event.window);
}
}
}
else if (ev->type == CreateNotify) {
// HACK
// Close all tooltips and notification windows
XCreateWindowEvent create_event = ev->xcreatewindow;
XWindowAttributes childAttr;
Window childTransient;
if (XGetWindowAttributes(create_event.display, create_event.window, &childAttr) && XGetTransientForHint(create_event.display, create_event.window, &childTransient)) {
if ((childAttr.override_redirect) && (childTransient)) {
XDestroyWindow(create_event.display, create_event.window);
}
}
}
#endif
return TDEApplication::x11EventFilter( ev );
return TDEApplication::x11EventFilter( ev );
}
static TDECmdLineOptions options[] =
{
{ "forcelock", I18N_NOOP("Force session locking"), 0 },
{ "dontlock", I18N_NOOP("Only start screensaver"), 0 },
{ "securedialog", I18N_NOOP("Launch the secure dialog"), 0 },
{ "blank", I18N_NOOP("Only use the blank screensaver"), 0 },
{ "internal <pid>", I18N_NOOP("TDE internal command for background process loading"), 0 },
TDECmdLineLastOption
{ "forcelock", I18N_NOOP("Force session locking"), 0 },
{ "dontlock", I18N_NOOP("Only start screensaver"), 0 },
{ "securedialog", I18N_NOOP("Launch the secure dialog"), 0 },
{ "blank", I18N_NOOP("Only use the blank screensaver"), 0 },
{ "internal <pid>", I18N_NOOP("TDE internal command for background process loading"), 0 },
TDECmdLineLastOption
};
void restore_hidden_override_redirect_windows() {
TQXLibWindowList::iterator it;
for (it = trinity_desktop_lock_hidden_window_list.begin(); it != trinity_desktop_lock_hidden_window_list.end(); ++it) {
Window win = *it;
XRaiseWindow(tqt_xdisplay(), win);
}
TQXLibWindowList::iterator it;
for (it = trinity_desktop_lock_hidden_window_list.begin(); it != trinity_desktop_lock_hidden_window_list.end(); ++it) {
Window win = *it;
XRaiseWindow(tqt_xdisplay(), win);
}
}
// -----------------------------------------------------------------------------
int main( int argc, char **argv )
{
TDELocale::setMainCatalogue("kdesktop");
TDECmdLineArgs::init( argc, argv, "kdesktop_lock", I18N_NOOP("KDesktop Locker"), I18N_NOOP("Session Locker for KDesktop"), "2.1" );
TDECmdLineArgs::addCmdLineOptions( options );
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
putenv(strdup("SESSION_MANAGER="));
TDEApplication::disableAutoDcopRegistration(); // not needed
XSetErrorHandler(trapXErrors);
MyApp* app = NULL;
while (1 == 1) {
signalled_forcelock = FALSE;
signalled_dontlock = FALSE;
signalled_securedialog = FALSE;
signalled_blank = FALSE;
signalled_run = FALSE;
int kdesktop_screen_number = 0;
int starting_screen = 0;
bool child = false;
int parent_connection = 0; // socket to the parent saver
TQValueList<int> child_sockets;
if (TDEGlobalSettings::isMultiHead())
{
Display *dpy = XOpenDisplay(NULL);
if (! dpy) {
fprintf(stderr,
"%s: FATAL ERROR: couldn't open display '%s'\n",
argv[0], XDisplayName(NULL));
exit(1);
}
int number_of_screens = ScreenCount(dpy);
starting_screen = kdesktop_screen_number = DefaultScreen(dpy);
int pos;
TQCString display_name = XDisplayString(dpy);
XCloseDisplay(dpy);
kdDebug() << "screen " << number_of_screens << " " << kdesktop_screen_number << " " << display_name << " " << starting_screen << endl;
dpy = 0;
if ((pos = display_name.findRev('.')) != -1)
display_name.remove(pos, 10);
TQCString env;
if (number_of_screens != 1) {
for (int i = 0; i < number_of_screens; i++) {
if (i != starting_screen) {
int fd[2];
if (pipe(fd)) {
perror("pipe");
break;
}
if (fork() == 0) {
child = true;
kdesktop_screen_number = i;
parent_connection = fd[0];
// break here because we are the child process, we don't
// want to fork() anymore
break;
} else {
child_sockets.append(fd[1]);
}
}
}
env.sprintf("DISPLAY=%s.%d", display_name.data(),
kdesktop_screen_number);
kdDebug() << "env " << env << endl;
if (putenv(strdup(env.data()))) {
fprintf(stderr,
"%s: WARNING: unable to set DISPLAY environment variable\n",
argv[0]);
perror("putenv()");
}
}
}
if (!app) {
TDELocale::setMainCatalogue("kdesktop");
TDECmdLineArgs::init( argc, argv, "kdesktop_lock", I18N_NOOP("KDesktop Locker"), I18N_NOOP("Session Locker for KDesktop"), "2.1" );
TDECmdLineArgs::addCmdLineOptions( options );
TDECmdLineArgs *args = TDECmdLineArgs::parsedArgs();
putenv(strdup("SESSION_MANAGER="));
TDEApplication::disableAutoDcopRegistration(); // not needed
XSetErrorHandler(trapXErrors);
MyApp* app = NULL;
while (1 == 1) {
signalled_forcelock = FALSE;
signalled_dontlock = FALSE;
signalled_securedialog = FALSE;
signalled_blank = FALSE;
signalled_run = FALSE;
int kdesktop_screen_number = 0;
int starting_screen = 0;
bool child = false;
int parent_connection = 0; // socket to the parent saver
TQValueList<int> child_sockets;
if (TDEGlobalSettings::isMultiHead()) {
Display *dpy = XOpenDisplay(NULL);
if (! dpy) {
fprintf(stderr,
"%s: FATAL ERROR: couldn't open display '%s'\n",
argv[0], XDisplayName(NULL));
exit(1);
}
int number_of_screens = ScreenCount(dpy);
starting_screen = kdesktop_screen_number = DefaultScreen(dpy);
int pos;
TQCString display_name = XDisplayString(dpy);
XCloseDisplay(dpy);
kdDebug() << "screen " << number_of_screens << " " << kdesktop_screen_number << " " << display_name << " " << starting_screen << endl;
dpy = 0;
if ((pos = display_name.findRev('.')) != -1) {
display_name.remove(pos, 10);
}
TQCString env;
if (number_of_screens != 1) {
for (int i = 0; i < number_of_screens; i++) {
if (i != starting_screen) {
int fd[2];
if (pipe(fd)) {
perror("pipe");
break;
}
if (fork() == 0) {
child = true;
kdesktop_screen_number = i;
parent_connection = fd[0];
// break here because we are the child process, we don't
// want to fork() anymore
break;
}
else {
child_sockets.append(fd[1]);
}
}
}
env.sprintf("DISPLAY=%s.%d", display_name.data(),
kdesktop_screen_number);
kdDebug() << "env " << env << endl;
if (putenv(strdup(env.data()))) {
fprintf(stderr,
"%s: WARNING: unable to set DISPLAY environment variable\n",
argv[0]);
perror("putenv()");
}
}
}
if (!app) {
#ifdef COMPOSITE
app = new MyApp(TDEApplication::openX11RGBADisplay());
argb_visual = app->isX11CompositionAvailable();
app = new MyApp(TDEApplication::openX11RGBADisplay());
argb_visual = app->isX11CompositionAvailable();
#else
app = new MyApp;
app = new MyApp;
#endif
}
TDELockFile lock(locateLocal("tmp", "kdesktop_lock_lockfile"));
lock.setStaleTime(0);
TDELockFile::LockResult lockRet = lock.lock();
if (lockRet != TDELockFile::LockOK) {
// Terminate existing (stale) process if needed
int pid;
TQString hostName;
TQString appName;
if (lock.getLockInfo(pid, hostName, appName)) {
// Verify that the pid in question is an instance of kdesktop_lock
int len;
char procpath[PATH_MAX];
char fullpath[PATH_MAX];
snprintf(procpath, sizeof(procpath), "/proc/%d/exe", pid);
len = readlink( procpath, fullpath, sizeof(fullpath) );
if (len >= 0) {
fullpath[len] = 0;
TQFileInfo fileInfo(fullpath);
if (fileInfo.baseName() == "kdesktop_lock") {
// Verify that pid in question is owned by current user before killing it
uid_t current_uid = geteuid();
struct stat info;
if (lstat(procpath, &info) == 0) {
if (info.st_uid == current_uid) {
kill(pid, SIGKILL);
}
}
}
}
}
}
// Force a relock as a stale lockfile or process may have been dealt with above
if (!lock.isLocked()) {
lockRet = lock.lock(TDELockFile::LockNoBlock | TDELockFile::LockForce);
}
kdDebug() << "app " << kdesktop_screen_number << " " << starting_screen << " " << child << " " << child_sockets.count() << " " << parent_connection << endl;
app->disableSessionManagement();
TDEGlobal::locale()->insertCatalogue("libdmctl");
struct stat st;
KSimpleConfig* tdmconfig;
OPEN_TDMCONFIG_AND_SET_GROUP
trinity_desktop_lock_process = new LockProcess;
// Start loading core functions, such as the desktop wallpaper interface
app->processEvents();
if (args->isSet( "internal" )) {
kdesktop_pid = atoi(args->getOption( "internal" ));
sigset_t new_mask;
sigset_t orig_mask;
struct sigaction act;
in_internal_mode = TRUE;
// handle SIGUSR1
act.sa_handler= sigusr1_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGUSR1);
act.sa_flags = 0;
sigaction(SIGUSR1, &act, 0L);
// handle SIGUSR2
act.sa_handler= sigusr2_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGUSR2);
act.sa_flags = 0;
sigaction(SIGUSR2, &act, 0L);
// handle SIGWINCH (an ersatz SIGUSR3)
act.sa_handler= sigusr3_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGWINCH);
act.sa_flags = 0;
sigaction(SIGWINCH, &act, 0L);
// handle SIGTTIN (an ersatz SIGUSR4)
act.sa_handler= sigusr4_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGTTIN);
act.sa_flags = 0;
sigaction(SIGTTIN, &act, 0L);
// handle SIGTTOU (an ersatz SIGUSR5)
act.sa_handler= sigusr5_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGTTOU);
act.sa_flags = 0;
sigaction(SIGTTOU, &act, 0L);
// initialize the signal masks
sigemptyset(&new_mask);
sigaddset(&new_mask,SIGUSR1);
sigaddset(&new_mask,SIGUSR2);
sigaddset(&new_mask,SIGWINCH);
sigaddset(&new_mask,SIGTTIN);
sigaddset(&new_mask,SIGTTOU);
while (signalled_run == FALSE) {
// let kdesktop know the saver process is ready
if (kill(kdesktop_pid, SIGTTIN) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
// Get root window attributes
XWindowAttributes rootAttr;
XGetWindowAttributes(tqt_xdisplay(), RootWindow(tqt_xdisplay(), tqt_xscreen()), &rootAttr);
// Disable reception of all X11 events on the root window
XSelectInput( tqt_xdisplay(), tqt_xrootwin(), 0 );
}
TDELockFile lock(locateLocal("tmp", "kdesktop_lock_lockfile"));
lock.setStaleTime(0);
TDELockFile::LockResult lockRet = lock.lock();
if (lockRet != TDELockFile::LockOK) {
// Terminate existing (stale) process if needed
int pid;
TQString hostName;
TQString appName;
if (lock.getLockInfo(pid, hostName, appName)) {
// Verify that the pid in question is an instance of kdesktop_lock
int len;
char procpath[PATH_MAX];
char fullpath[PATH_MAX];
snprintf(procpath, sizeof(procpath), "/proc/%d/exe", pid);
len = readlink( procpath, fullpath, sizeof(fullpath) );
if (len >= 0) {
fullpath[len] = 0;
TQFileInfo fileInfo(fullpath);
if (fileInfo.baseName() == "kdesktop_lock") {
// Verify that pid in question is owned by current user before killing it
uid_t current_uid = geteuid();
struct stat info;
if (lstat(procpath, &info) == 0) {
if (info.st_uid == current_uid) {
kill(pid, SIGKILL);
}
}
}
}
}
}
// Force a relock as a stale lockfile or process may have been dealt with above
if (!lock.isLocked()) {
lockRet = lock.lock(TDELockFile::LockNoBlock | TDELockFile::LockForce);
}
kdDebug() << "app " << kdesktop_screen_number << " " << starting_screen << " " << child << " " << child_sockets.count() << " " << parent_connection << endl;
app->disableSessionManagement();
TDEGlobal::locale()->insertCatalogue("libdmctl");
struct stat st;
KSimpleConfig* tdmconfig;
OPEN_TDMCONFIG_AND_SET_GROUP
trinity_desktop_lock_process = new LockProcess;
// Start loading core functions, such as the desktop wallpaper interface
app->processEvents();
// wait for SIGUSR1, SIGUSR2, SIGWINCH, SIGTTIN, or SIGTTOU
sigprocmask(SIG_BLOCK, &new_mask, &orig_mask);
if (signalled_run != TRUE) {
sigsuspend(&orig_mask);
if (args->isSet( "internal" )) {
kdesktop_pid = atoi(args->getOption( "internal" ));
sigset_t new_mask;
sigset_t orig_mask;
struct sigaction act;
in_internal_mode = TRUE;
// handle SIGUSR1
act.sa_handler= sigusr1_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGUSR1);
act.sa_flags = 0;
sigaction(SIGUSR1, &act, 0L);
// handle SIGUSR2
act.sa_handler= sigusr2_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGUSR2);
act.sa_flags = 0;
sigaction(SIGUSR2, &act, 0L);
// handle SIGWINCH (an ersatz SIGUSR3)
act.sa_handler= sigusr3_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGWINCH);
act.sa_flags = 0;
sigaction(SIGWINCH, &act, 0L);
// handle SIGTTIN (an ersatz SIGUSR4)
act.sa_handler= sigusr4_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGTTIN);
act.sa_flags = 0;
sigaction(SIGTTIN, &act, 0L);
// handle SIGTTOU (an ersatz SIGUSR5)
act.sa_handler= sigusr5_handler;
sigemptyset(&(act.sa_mask));
sigaddset(&(act.sa_mask), SIGTTOU);
act.sa_flags = 0;
sigaction(SIGTTOU, &act, 0L);
// initialize the signal masks
sigemptyset(&new_mask);
sigaddset(&new_mask,SIGUSR1);
sigaddset(&new_mask,SIGUSR2);
sigaddset(&new_mask,SIGWINCH);
sigaddset(&new_mask,SIGTTIN);
sigaddset(&new_mask,SIGTTOU);
while (signalled_run == FALSE) {
// let kdesktop know the saver process is ready
if (kill(kdesktop_pid, SIGTTIN) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
// Get root window attributes
XWindowAttributes rootAttr;
XGetWindowAttributes(tqt_xdisplay(), RootWindow(tqt_xdisplay(), tqt_xscreen()), &rootAttr);
// Disable reception of all X11 events on the root window
XSelectInput( tqt_xdisplay(), tqt_xrootwin(), 0 );
app->processEvents();
// wait for SIGUSR1, SIGUSR2, SIGWINCH, SIGTTIN, or SIGTTOU
sigprocmask(SIG_BLOCK, &new_mask, &orig_mask);
if (signalled_run != TRUE) {
sigsuspend(&orig_mask);
}
sigprocmask(SIG_UNBLOCK, &new_mask, NULL);
// Reenable reception of X11 events on the root window
XSelectInput( tqt_xdisplay(), tqt_xrootwin(), rootAttr.your_event_mask );
}
// Block reception of all signals in this thread
sigprocmask(SIG_BLOCK, &new_mask, NULL);
}
// (re)load settings here so that they actually reflect reality
// we need to read from the right rc file - possibly taking screen number in account
if (!trinity_desktop_lock_settings_initialized) {
KDesktopSettings::instance("kdesktoprc");
trinity_desktop_lock_settings_initialized = true;
}
sigprocmask(SIG_UNBLOCK, &new_mask, NULL);
// Reenable reception of X11 events on the root window
XSelectInput( tqt_xdisplay(), tqt_xrootwin(), rootAttr.your_event_mask );
}
// Block reception of all signals in this thread
sigprocmask(SIG_BLOCK, &new_mask, NULL);
}
// (re)load settings here so that they actually reflect reality
// we need to read from the right rc file - possibly taking screen number in account
if (!trinity_desktop_lock_settings_initialized) {
KDesktopSettings::instance("kdesktoprc");
trinity_desktop_lock_settings_initialized = true;
}
else {
KDesktopSettings::self()->readConfig();
}
trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows();
trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart();
if (trinity_desktop_lock_use_system_modal_dialogs) {
else {
KDesktopSettings::self()->readConfig();
}
trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows();
trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart();
if (trinity_desktop_lock_use_system_modal_dialogs) {
#ifdef BUILD_TSAK
trinity_desktop_lock_use_sak = tdmconfig->readBoolEntry("UseSAK", false) && KDesktopSettings::useTDESAK();
trinity_desktop_lock_use_sak = tdmconfig->readBoolEntry("UseSAK", false) && KDesktopSettings::useTDESAK();
#else
trinity_desktop_lock_use_sak = false;
trinity_desktop_lock_use_sak = false;
#endif
}
else {
trinity_desktop_lock_use_sak = false; // If SAK is enabled with unmanaged windows, the SAK dialog will never close and will "burn in" the screen
trinity_desktop_lock_delay_screensaver_start = false; // If trinity_desktop_lock_delay_screensaver_start is true with unmanaged windows, the lock dialog may never appear
}
trinity_desktop_lock_hide_active_windows = KDesktopSettings::hideActiveWindowsFromSaver();
trinity_desktop_lock_hide_cancel_button = KDesktopSettings::hideCancelButton();
delete tdmconfig;
if (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE)) {
trinity_desktop_lock_forced = TRUE;
}
trinity_desktop_lock_process->init(child, (args->isSet( "blank" ) || (signalled_blank == TRUE)));
if (!child) {
trinity_desktop_lock_process->setChildren(child_sockets);
}
else {
trinity_desktop_lock_process->setParent(parent_connection);
}
bool rt;
if( (((!child) && (args->isSet( "forcelock" ))) || (signalled_forcelock == TRUE))) {
rt = trinity_desktop_lock_process->lock();
}
else if( child || (args->isSet( "dontlock" ) || (signalled_dontlock == TRUE))) {
rt = trinity_desktop_lock_process->dontLock();
}
else if( child || (args->isSet( "securedialog" ) || (signalled_securedialog == TRUE))) {
int retcode = tde_sak_verify_calling_process();
if (retcode == 0) {
rt = trinity_desktop_lock_process->runSecureDialog();
}
else {
return 1;
}
}
else {
rt = trinity_desktop_lock_process->defaultSave();
}
if (!rt) {
return 0;
}
if (in_internal_mode == FALSE) {
trinity_desktop_lock_hidden_window_list.clear();
int ret = app->exec();
restore_hidden_override_redirect_windows();
return ret;
}
else {
if (kill(kdesktop_pid, 0) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
trinity_desktop_lock_hidden_window_list.clear();
app->exec();
restore_hidden_override_redirect_windows();
if (kill(kdesktop_pid, SIGUSR1) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
delete trinity_desktop_lock_process;
trinity_desktop_lock_process = NULL;
// FIXME
// We should not have to return (restart) at all,
// but it seems that some X11 connections are left active,
// preventing the lock process from restarting properly in the while() loop above.
return 0;
}
}
}
else {
trinity_desktop_lock_use_sak = false; // If SAK is enabled with unmanaged windows, the SAK dialog will never close and will "burn in" the screen
trinity_desktop_lock_delay_screensaver_start = false; // If trinity_desktop_lock_delay_screensaver_start is true with unmanaged windows, the lock dialog may never appear
}
trinity_desktop_lock_hide_active_windows = KDesktopSettings::hideActiveWindowsFromSaver();
trinity_desktop_lock_hide_cancel_button = KDesktopSettings::hideCancelButton();
delete tdmconfig;
if (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE)) {
trinity_desktop_lock_forced = TRUE;
}
trinity_desktop_lock_process->init(child, (args->isSet( "blank" ) || (signalled_blank == TRUE)));
if (!child) {
trinity_desktop_lock_process->setChildren(child_sockets);
}
else {
trinity_desktop_lock_process->setParent(parent_connection);
}
bool rt;
if( (((!child) && (args->isSet( "forcelock" ))) || (signalled_forcelock == TRUE))) {
rt = trinity_desktop_lock_process->lock();
}
else if( child || (args->isSet( "dontlock" ) || (signalled_dontlock == TRUE))) {
rt = trinity_desktop_lock_process->dontLock();
}
else if( child || (args->isSet( "securedialog" ) || (signalled_securedialog == TRUE))) {
int retcode = tde_sak_verify_calling_process();
if (retcode == 0) {
rt = trinity_desktop_lock_process->runSecureDialog();
}
else {
return 1;
}
}
else {
rt = trinity_desktop_lock_process->defaultSave();
}
if (!rt) {
return 0;
}
if (in_internal_mode == FALSE) {
trinity_desktop_lock_hidden_window_list.clear();
int ret = app->exec();
restore_hidden_override_redirect_windows();
return ret;
}
else {
if (kill(kdesktop_pid, 0) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
trinity_desktop_lock_hidden_window_list.clear();
app->exec();
restore_hidden_override_redirect_windows();
if (kill(kdesktop_pid, SIGUSR1) < 0) {
// The controlling kdesktop process probably died. Commit suicide...
return 12;
}
delete trinity_desktop_lock_process;
trinity_desktop_lock_process = NULL;
// FIXME
// We should not have to return (restart) at all,
// but it seems that some X11 connections are left active,
// preventing the lock process from restarting properly in the while() loop above.
return 0;
}
}
}
#include "main.moc"

@ -1,4 +1,4 @@
/* This file is part of the KDE project
/* This file is part of the TDE project
Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
This library is free software; you can redistribute it and/or
@ -25,17 +25,20 @@
#include <time.h>
class MyApp : public TDEApplication {
Q_OBJECT
public:
MyApp() : TDEApplication(), lastTick( 0 ) {}
MyApp(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0, bool allowStyles=true) : TDEApplication(display, visual, colormap, allowStyles), lastTick( 0 ) {}
protected:
bool x11EventFilter( XEvent * );
signals:
void activity();
void mouseInteraction(XEvent *event);
private:
time_t lastTick;
Q_OBJECT
public:
MyApp() : TDEApplication(), lastTick( 0 ) {}
MyApp(Display *display, Qt::HANDLE visual = 0, Qt::HANDLE colormap = 0, bool allowStyles=true) : TDEApplication(display, visual, colormap, allowStyles), lastTick( 0 ) {}
protected:
bool x11EventFilter( XEvent * );
signals:
void activity();
void mouseInteraction(XEvent *event);
private:
time_t lastTick;
};
#endif

Loading…
Cancel
Save