parent
aeb0878cbf
commit
29e62220cb
@ -1,19 +0,0 @@
|
||||
*** kdebase/kdesktop/krootwm.cc.ori 2011-07-20 14:14:25.822954866 +0200
|
||||
--- kdebase/kdesktop/krootwm.cc 2011-07-20 14:16:09.964002976 +0200
|
||||
***************
|
||||
*** 760,766 ****
|
||||
KConfigGroupSaver gs(KGlobal::config(), "General");
|
||||
TQString terminal = KGlobal::config()->readPathEntry("TerminalApplication", "konsole");
|
||||
|
||||
! *p << terminal << "--workdir=" + KGlobalSettings::desktopPath() + "/";
|
||||
|
||||
p->start(KProcess::DontCare);
|
||||
|
||||
--- 760,766 ----
|
||||
KConfigGroupSaver gs(KGlobal::config(), "General");
|
||||
TQString terminal = KGlobal::config()->readPathEntry("TerminalApplication", "konsole");
|
||||
|
||||
! *p << terminal;
|
||||
|
||||
p->start(KProcess::DontCare);
|
||||
|
@ -1,36 +0,0 @@
|
||||
*** kdebase/kcontrol/Makefile.am.ORI 2011-09-18 22:04:50.000000000 +0200
|
||||
--- kdebase/kcontrol/Makefile.am 2011-09-18 22:05:00.000000000 +0200
|
||||
***************
|
||||
*** 12,18 ****
|
||||
endif
|
||||
|
||||
if include_kcontrol_iccconfig
|
||||
! ICCCONFIG_SUBDIR=iccconfig
|
||||
endif
|
||||
|
||||
if include_kcontrol_usbview
|
||||
--- 12,18 ----
|
||||
endif
|
||||
|
||||
if include_kcontrol_iccconfig
|
||||
! #ICCCONFIG_SUBDIR=iccconfig
|
||||
endif
|
||||
|
||||
if include_kcontrol_usbview
|
||||
***************
|
||||
*** 24,30 ****
|
||||
endif
|
||||
|
||||
if include_kcontrol_randr
|
||||
! RANDR_SUBDIR=randr
|
||||
endif
|
||||
|
||||
if include_kcontrol_joystick
|
||||
--- 24,30 ----
|
||||
endif
|
||||
|
||||
if include_kcontrol_randr
|
||||
! #RANDR_SUBDIR=randr
|
||||
endif
|
||||
|
||||
if include_kcontrol_joystick
|
@ -1,78 +0,0 @@
|
||||
*** kdebase/kioslave/media/mediamanager/halbackend.cpp.orig 2010-09-30 00:24:28.000000000 +0200
|
||||
--- kdebase/kioslave/media/mediamanager/halbackend.cpp 2011-07-20 16:39:40.933056051 +0200
|
||||
***************
|
||||
*** 873,878 ****
|
||||
--- 873,905 ----
|
||||
s_HALBackend->DeviceCondition(udi, condition_name);
|
||||
}
|
||||
|
||||
+ TQStringList HALBackend::getHALmountoptions(TQString udi)
|
||||
+ {
|
||||
+ const char* _ppt_string;
|
||||
+ LibHalVolume* volume;
|
||||
+ LibHalDrive* drive;
|
||||
+
|
||||
+ TQString _ppt_QString;
|
||||
+
|
||||
+ volume = libhal_volume_from_udi( m_halContext, udi.latin1() );
|
||||
+ if( volume )
|
||||
+ drive = libhal_drive_from_udi( m_halContext, libhal_volume_get_storage_device_udi( volume ) );
|
||||
+ else
|
||||
+ drive = libhal_drive_from_udi( m_halContext, udi.latin1() );
|
||||
+
|
||||
+ if( !drive )
|
||||
+ return TQString::null;
|
||||
+
|
||||
+ if( volume )
|
||||
+ _ppt_string = libhal_volume_policy_get_mount_options ( drive, volume, NULL );
|
||||
+ else
|
||||
+ _ppt_string = libhal_drive_policy_get_mount_options ( drive, NULL );
|
||||
+
|
||||
+ _ppt_QString = TQString(_ppt_string ? _ppt_string : "");
|
||||
+
|
||||
+ return TQStringList::split(",",_ppt_QString);
|
||||
+ }
|
||||
+
|
||||
TQStringList HALBackend::mountoptions(const TQString &name)
|
||||
{
|
||||
const Medium* medium = m_mediaList.findById(name);
|
||||
***************
|
||||
*** 1472,1481 ****
|
||||
--- 1499,1524 ----
|
||||
soptions << TQString("data=ordered");
|
||||
}
|
||||
|
||||
+ TQStringList hal_mount_options = getHALmountoptions(medium->id());
|
||||
+ for (TQValueListIterator<TQString> it=hal_mount_options.begin();it!=hal_mount_options.end();it++)
|
||||
+ {
|
||||
+ soptions << *it;
|
||||
+ kdDebug()<<"HALOption: "<<*it<<endl;
|
||||
+ if ((*it).startsWith("iocharset="))
|
||||
+ {
|
||||
+ soptions.remove("utf8");
|
||||
+ kdDebug()<<"\"iocharset=\" found. Removing \"utf8\" from options."<<endl;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
const char **options = new const char*[soptions.size() + 1];
|
||||
uint noptions = 0;
|
||||
for (TQStringList::ConstIterator it = soptions.begin(); it != soptions.end(); ++it, ++noptions)
|
||||
+ {
|
||||
options[noptions] = (*it).latin1();
|
||||
+ kdDebug()<<"Option: "<<*it<<endl;
|
||||
+ }
|
||||
options[noptions] = NULL;
|
||||
|
||||
TQString qerror = i18n("Cannot mount encrypted drives!");
|
||||
diff -r -u kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h kdebase-3.5.5a.dfsg.1/kioslave/media/mediamanager/halbackend.h
|
||||
--- kdebase-3.5.5a.dfsg.1.orig/kioslave/media/mediamanager/halbackend.h 2007-01-25 12:34:07.133446000 +0300
|
||||
+++ kdebase-3.5.5a.dfsg.1/kioslave/media/mediamanager/halbackend.h 2007-01-25 16:33:54.413638693 +0300
|
||||
@@ -192,6 +192,7 @@
|
||||
const char* message
|
||||
);
|
||||
|
||||
+ TQStringList getHALmountoptions(QString udi);
|
||||
/* HAL and DBus structures */
|
||||
private:
|
||||
/**
|
@ -1,22 +0,0 @@
|
||||
--- kdebase-3.5.12/kdesktop/lock/lockprocess.cc.ORI 2011-12-21 18:40:05.553301746 +0100
|
||||
+++ kdebase-3.5.12/kdesktop/lock/lockprocess.cc 2011-12-21 18:43:01.643590270 +0100
|
||||
@@ -1045,17 +1045,13 @@
|
||||
mHackProc << word;
|
||||
}
|
||||
|
||||
- if (!mForbidden)
|
||||
+ if (!mForbidden && mHackProc.start() == true)
|
||||
{
|
||||
-
|
||||
- if (mHackProc.start() == true)
|
||||
- {
|
||||
#ifdef HAVE_SETPRIORITY
|
||||
setpriority(PRIO_PROCESS, mHackProc.pid(), mPriority);
|
||||
#endif
|
||||
//bitBlt(this, 0, 0, &mOriginal);
|
||||
return true;
|
||||
- }
|
||||
}
|
||||
else
|
||||
// we aren't allowed to start the specified screensaver either because it didn't run for some reason
|
||||
|
@ -1,45 +0,0 @@
|
||||
diff -rcb kdebase.ORI/kdesu/kdesu/sudlg.cpp kdebase/kdesu/kdesu/sudlg.cpp
|
||||
*** kdebase.ORI/kdesu/kdesu/sudlg.cpp 2010-12-17 22:55:07.725798945 +0100
|
||||
--- kdebase/kdesu/kdesu/sudlg.cpp 2010-12-17 22:55:49.378797283 +0100
|
||||
***************
|
||||
*** 15,21 ****
|
||||
#include "sudlg.h"
|
||||
|
||||
KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
|
||||
! : KPasswordDialog(Password, enableKeep, (withIgnoreButton ? User1:NoDefault), icon)
|
||||
{
|
||||
KConfig* config = KGlobal::config();
|
||||
config->setGroup("super-user-command");
|
||||
--- 15,21 ----
|
||||
#include "sudlg.h"
|
||||
|
||||
KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
|
||||
! : KPasswordDialog(Password, enableKeep, 0, icon)
|
||||
{
|
||||
KConfig* config = KGlobal::config();
|
||||
config->setGroup("super-user-command");
|
||||
***************
|
||||
*** 34,45 ****
|
||||
} else {
|
||||
if (m_User == "root") {
|
||||
prompt = i18n("The action you requested needs root privileges. "
|
||||
! "Please enter root's password below or click "
|
||||
! "Ignore to continue with your current privileges.");
|
||||
} else {
|
||||
prompt = i18n("The action you requested needs additional privileges. "
|
||||
! "Please enter the password for \"%1\" below or click "
|
||||
! "Ignore to continue with your current privileges.").arg(m_User);
|
||||
}
|
||||
}
|
||||
setPrompt(prompt);
|
||||
--- 34,43 ----
|
||||
} else {
|
||||
if (m_User == "root") {
|
||||
prompt = i18n("The action you requested needs root privileges. "
|
||||
! "Please enter root's password below.");
|
||||
} else {
|
||||
prompt = i18n("The action you requested needs additional privileges. "
|
||||
! "Please enter the password for \"%1\" below.").arg(m_User);
|
||||
}
|
||||
}
|
||||
setPrompt(prompt);
|
@ -1,29 +0,0 @@
|
||||
diff -Nuar kdebase/kdm.ORI/config.def kdebase/kdm/config.def
|
||||
--- kdebase/kdm.ORI/config.def 2012-01-05 19:29:01.956728364 +0100
|
||||
+++ kdebase/kdm/config.def 2012-01-05 19:28:53.165728336 +0100
|
||||
@@ -2630,3 +2630,12 @@
|
||||
Description:
|
||||
The theme to use for the greeter. Can point to either a directory or an XML
|
||||
file.
|
||||
+
|
||||
+Key: HideMenuButton
|
||||
+Type: bool
|
||||
+Default: false
|
||||
+User: greeter
|
||||
+Instance: */
|
||||
+Comment: &
|
||||
+Description:
|
||||
+ Determines if the "menu" button should be hidden on KDM login prompt.
|
||||
diff -Nuar kdebase/kdm.ORI/kfrontend/kgreeter.cpp kdebase/kdm/kfrontend/kgreeter.cpp
|
||||
--- kdebase/kdm.ORI/kfrontend/kgreeter.cpp 2012-01-05 19:29:01.955735413 +0100
|
||||
+++ kdebase/kdm/kfrontend/kgreeter.cpp 2012-01-05 19:30:39.538730206 +0100
|
||||
@@ -892,6 +892,9 @@
|
||||
else
|
||||
menuButton->hide();
|
||||
|
||||
+ if ( _hideMenuButton)
|
||||
+ menuButton->hide();
|
||||
+
|
||||
pluginSetup();
|
||||
|
||||
verify->start();
|
@ -1,13 +0,0 @@
|
||||
Index: ui/k_new_mnu.cpp
|
||||
===================================================================
|
||||
--- ui/k_new_mnu.cpp (revision 1259264)
|
||||
+++ ui/k_new_mnu.cpp (working copy)
|
||||
@@ -3502,6 +3502,8 @@
|
||||
descr, "system:/media/" + name, nId++, -1 );
|
||||
|
||||
++it; // skip separator
|
||||
+ ++it;
|
||||
+ ++it;
|
||||
}
|
||||
}
|
||||
|
@ -1,428 +0,0 @@
|
||||
--- kdebase/kicker/kicker/buttons/knewbutton.cpp.ORI 2011-12-08 21:15:57.551323941 +0100
|
||||
+++ kdebase/kicker/kicker/buttons/knewbutton.cpp 2011-12-08 21:22:05.216346827 +0100
|
||||
@@ -55,26 +55,26 @@
|
||||
: KButton( parent ),
|
||||
m_oldPos(0,0)
|
||||
{
|
||||
+ setTitle(i18n("K Menu"));
|
||||
Q_ASSERT( !m_self );
|
||||
m_self = this;
|
||||
- m_hoverTimer = -1;
|
||||
m_openTimer = -1;
|
||||
- m_active = false;
|
||||
+ m_hoverTimer = -1;
|
||||
m_mouseInside = false;
|
||||
m_drag = false;
|
||||
|
||||
- setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignRight));
|
||||
- setAcceptDrops(true);
|
||||
- setIcon("kmenu-suse");
|
||||
- setDrawArrow(false);
|
||||
-
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
|
||||
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
|
||||
- m_movie->connectStatus(this, TQT_SLOT(slotStatus(int)));
|
||||
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
|
||||
+ setIcon("kmenu");
|
||||
+ setIcon(KickerSettings::customKMenuIcon());
|
||||
|
||||
TQApplication::desktop()->screen()->installEventFilter(this);
|
||||
- setMouseTracking(true);
|
||||
+ if (KickerSettings::showKMenuText())
|
||||
+ {
|
||||
+ setButtonText(KickerSettings::kMenuText());
|
||||
+ setFont(KickerSettings::buttonFont());
|
||||
+ setTextColor(KickerSettings::buttonTextColor());
|
||||
+ }
|
||||
+
|
||||
+ repaint();
|
||||
}
|
||||
|
||||
KNewButton::~KNewButton()
|
||||
@@ -82,28 +82,14 @@
|
||||
if ( m_self == this )
|
||||
m_self = 0;
|
||||
setMouseTracking(false);
|
||||
- delete m_movie;
|
||||
-}
|
||||
-
|
||||
-void KNewButton::slotStatus(int status)
|
||||
-{
|
||||
- if(status == TQMovie::EndOfLoop)
|
||||
- slotStopAnimation();
|
||||
}
|
||||
|
||||
-TQColor KNewButton::borderColor() const
|
||||
+void KNewButton::drawButton(TQPainter *p)
|
||||
{
|
||||
- TQImage img = m_active_pixmap.convertToImage();
|
||||
-
|
||||
- for (int i = 0; i < img.width(); ++i) {
|
||||
- QRgb rgb = img.pixel(orientation() == Qt::Horizontal ? img.width() - i - 1 :
|
||||
- i, 2);
|
||||
-
|
||||
- if (qGreen(rgb) > 0x50)
|
||||
- return rgb;
|
||||
- }
|
||||
-
|
||||
- return img.pixel( orientation() == Qt::Horizontal ? img.width() - 2 : 2, 2);
|
||||
+ //if (KickerSettings::showDeepButtons())
|
||||
+ // PanelPopupButton::drawDeepButton(p);
|
||||
+ //else
|
||||
+ PanelPopupButton::drawButton(p);
|
||||
}
|
||||
|
||||
void KNewButton::show()
|
||||
@@ -111,103 +97,12 @@
|
||||
KButton::show();
|
||||
|
||||
if (KickerSettings::firstRun()) {
|
||||
- TQTimer::singleShot(500,this,TQT_SLOT(slotExecMenu()));
|
||||
+ TQTimer::singleShot(0,this,TQT_SLOT(slotExecMenu()));
|
||||
KickerSettings::setFirstRun(false);
|
||||
KickerSettings::writeConfig();
|
||||
}
|
||||
}
|
||||
|
||||
-void KNewButton::updateMovie()
|
||||
-{
|
||||
- m_oldPos = TQPoint( -1, -1 );
|
||||
- drawEye();
|
||||
-
|
||||
- if (!m_active && m_movie->running())
|
||||
- m_movie->pause();
|
||||
-}
|
||||
-
|
||||
-void KNewButton::setPopupDirection(KPanelApplet::Direction d)
|
||||
-{
|
||||
- KButton::setPopupDirection(d);
|
||||
-
|
||||
- delete m_movie;
|
||||
-
|
||||
- switch (d) {
|
||||
- case KPanelApplet::Left:
|
||||
- setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignLeft));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignRight));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- setIconAlignment((Qt::AlignmentFlags)(AlignTop|AlignHCenter));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- setIconAlignment((Qt::AlignmentFlags)(AlignBottom|AlignHCenter));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_flipped.mng"));
|
||||
- }
|
||||
-
|
||||
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
|
||||
- m_movie->connectStatus(this, TQT_SLOT(slotStatus(int)));
|
||||
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
|
||||
-}
|
||||
-
|
||||
-void KNewButton::slotSetSize(const TQSize& s)
|
||||
-{
|
||||
- m_iconSize = s;
|
||||
-}
|
||||
-
|
||||
-double KNewButton::buttonScaleFactor(const TQSize& s) const
|
||||
-{
|
||||
- double sf = 1.0;
|
||||
-
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- case KPanelApplet::Right:
|
||||
-// sf = kMin(double(s.width()) / m_iconSize.height(), double(s.height()) / m_iconSize.width());
|
||||
-// break;
|
||||
- case KPanelApplet::Up:
|
||||
- case KPanelApplet::Down:
|
||||
- sf = kMin(double(s.width()) / m_iconSize.width(), double(s.height()) / m_iconSize.height());
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- if (sf > 0.8) sf = 1.0;
|
||||
- return sf;
|
||||
-}
|
||||
-
|
||||
-int KNewButton::widthForHeight(int height) const
|
||||
-{
|
||||
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(m_iconSize.width(), height));
|
||||
-
|
||||
- if (!m_movie->running() && height != m_active_pixmap.height())
|
||||
- {
|
||||
- KNewButton* that = const_cast<KNewButton*>(this);
|
||||
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
|
||||
- }
|
||||
-
|
||||
- return r;
|
||||
-}
|
||||
-
|
||||
-int KNewButton::preferredDimension(int panelDim) const
|
||||
-{
|
||||
- return kMax(m_icon.width(), m_icon.height());
|
||||
-}
|
||||
-
|
||||
-int KNewButton::heightForWidth(int width) const
|
||||
-{
|
||||
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(width, m_iconSize.height()));
|
||||
- if (!m_movie->running() && width != m_active_pixmap.width())
|
||||
- {
|
||||
- KNewButton* that = const_cast<KNewButton*>(this);
|
||||
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
|
||||
- }
|
||||
- return r;
|
||||
-}
|
||||
-
|
||||
bool KNewButton::eventFilter(TQObject *o, TQEvent *e)
|
||||
{
|
||||
if (e->type() == TQEvent::MouseButtonRelease ||
|
||||
@@ -223,75 +118,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (KickerSettings::kickoffDrawGeekoEye() && e->type() == TQEvent::MouseMove)
|
||||
- {
|
||||
- TQMouseEvent *me = static_cast<TQMouseEvent *>(e);
|
||||
- if ((me->state() & MouseButtonMask) == NoButton)
|
||||
- drawEye();
|
||||
- }
|
||||
-
|
||||
return KButton::eventFilter(o, e);
|
||||
}
|
||||
|
||||
-void KNewButton::drawEye()
|
||||
-{
|
||||
-#define eye_x 62
|
||||
-#define eye_y 13
|
||||
- TQPoint mouse = TQCursor::pos();
|
||||
- TQPoint me = mapToGlobal(TQPoint(eye_x, eye_y));
|
||||
- double a = atan2(mouse.y() - me.y(), mouse.x() - me.x());
|
||||
- int dx = int(2.1 * cos(a));
|
||||
- int dy = int(2.1 * sin(a));
|
||||
-
|
||||
- TQPoint newpos(eye_x+dx,eye_y+dy);
|
||||
- if (newpos!=m_oldPos) {
|
||||
- m_oldPos = newpos;
|
||||
- TQPixmap pixmap = m_active_pixmap;
|
||||
-
|
||||
- double sf = 1.0;
|
||||
-
|
||||
- if(!m_movie->framePixmap().isNull())
|
||||
- {
|
||||
- pixmap = m_movie->framePixmap();
|
||||
- pixmap.detach();
|
||||
- m_iconSize = pixmap.size();
|
||||
- sf = buttonScaleFactor(size());
|
||||
-
|
||||
- if (KickerSettings::kickoffDrawGeekoEye()) {
|
||||
- TQPainter p(&pixmap);
|
||||
- p.setPen(white);
|
||||
- p.setBrush(white);
|
||||
- // p.setPen(TQColor(110,185,55));
|
||||
- p.drawRect(eye_x+dx, eye_y+dy, 2, 2);
|
||||
- p. end();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- TQWMatrix matrix;
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- matrix.scale(sf, -sf);
|
||||
- matrix.rotate(90);
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- matrix.scale(sf, sf);
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- matrix.scale(sf, -sf);
|
||||
- matrix.rotate(90);
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- matrix.scale(sf, sf);
|
||||
- break;
|
||||
- }
|
||||
- m_active_pixmap = pixmap.xForm(matrix);
|
||||
-
|
||||
- repaint(false);
|
||||
- }
|
||||
-#undef eye_x
|
||||
-#undef eye_y
|
||||
-}
|
||||
-
|
||||
void KNewButton::enterEvent(TQEvent* e)
|
||||
{
|
||||
KButton::enterEvent(e);
|
||||
@@ -315,14 +144,6 @@
|
||||
}
|
||||
|
||||
m_active = true;
|
||||
- m_movie->unpause();
|
||||
- m_movie->restart();
|
||||
-}
|
||||
-
|
||||
-void KNewButton::rewindMovie()
|
||||
-{
|
||||
- m_oldPos = TQPoint( -1, -1 );
|
||||
- m_movie->unpause();
|
||||
}
|
||||
|
||||
void KNewButton::dragEnterEvent(TQDragEnterEvent* /*e*/)
|
||||
@@ -369,31 +190,11 @@
|
||||
}
|
||||
}
|
||||
|
||||
-void KNewButton::slotStopAnimation()
|
||||
-{
|
||||
- m_active = false;
|
||||
- m_movie->pause();
|
||||
- m_movie->restart();
|
||||
- TQTimer::singleShot(200, this, TQT_SLOT(rewindMovie()));
|
||||
-}
|
||||
-
|
||||
-const TQPixmap& KNewButton::labelIcon() const
|
||||
-{
|
||||
- return m_active_pixmap;
|
||||
-}
|
||||
-
|
||||
void KNewButton::slotExecMenu()
|
||||
{
|
||||
- if (m_openTimer != -1)
|
||||
- killTimer(m_openTimer);
|
||||
-
|
||||
- m_openTimer = startTimer(TQApplication::doubleClickInterval() * 3);
|
||||
-
|
||||
if (m_active)
|
||||
{
|
||||
m_active = false;
|
||||
- m_movie->pause();
|
||||
- m_movie->restart();
|
||||
}
|
||||
|
||||
KButton::slotExecMenu();
|
||||
@@ -401,40 +202,11 @@
|
||||
assert(!KickerTip::tippingEnabled());
|
||||
assert(dynamic_cast<KMenu*>(m_popup));
|
||||
|
||||
- disconnect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()), this,
|
||||
- TQT_SLOT(slotStopAnimation()));
|
||||
- connect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()),
|
||||
- TQT_SLOT(slotStopAnimation()));
|
||||
-
|
||||
m_popup->move(KickerLib::popupPosition(popupDirection(), m_popup, this));
|
||||
// I wish KMenu would properly done itself when it closes. But it doesn't.
|
||||
|
||||
- bool useEffect = true; // could be TQApplication::isEffectEnabled()
|
||||
- useEffect = false; // too many TQt bugs to be useful
|
||||
- if (m_drag)
|
||||
- useEffect = false;
|
||||
-
|
||||
m_drag = false; // once is enough
|
||||
-
|
||||
- if (useEffect)
|
||||
- {
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- qScrollEffect(m_popup, QEffects::LeftScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- qScrollEffect(m_popup, QEffects::UpScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- qScrollEffect(m_popup, QEffects::RightScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- qScrollEffect(m_popup, QEffects::DownScroll);
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- else
|
||||
- static_cast<KMenu*>(m_popup)->show();
|
||||
+ static_cast<KMenu*>(m_popup)->show();
|
||||
}
|
||||
|
||||
void KNewButton::timerEvent(TQTimerEvent* e)
|
||||
@@ -447,9 +219,4 @@
|
||||
killTimer(m_hoverTimer);
|
||||
m_hoverTimer = -1;
|
||||
}
|
||||
- if (e->timerId() == m_openTimer)
|
||||
- {
|
||||
- killTimer(m_openTimer);
|
||||
- m_openTimer = -1;
|
||||
- }
|
||||
}
|
||||
--- kdebase/kicker/kicker/buttons/knewbutton.h.ORI 2011-12-08 21:22:24.273573281 +0100
|
||||
+++ kdebase/kicker/kicker/buttons/knewbutton.h 2011-12-08 21:24:16.791338762 +0100
|
||||
@@ -28,7 +28,6 @@
|
||||
|
||||
#include "kbutton.h"
|
||||
|
||||
-#include <tqmovie.h>
|
||||
#include <tqpoint.h>
|
||||
|
||||
/**
|
||||
@@ -46,23 +45,8 @@
|
||||
|
||||
void loadConfig( const KConfigGroup& config );
|
||||
|
||||
- virtual const TQPixmap& labelIcon() const;
|
||||
-
|
||||
- virtual int widthForHeight(int height) const;
|
||||
- virtual int preferredDimension(int panelDim) const;
|
||||
- virtual int heightForWidth(int width) const;
|
||||
-
|
||||
TQColor borderColor() const;
|
||||
|
||||
- virtual void setPopupDirection(KPanelApplet::Direction d);
|
||||
-
|
||||
-private slots:
|
||||
- void slotStatus(int);
|
||||
- void slotSetSize(const TQSize&);
|
||||
- void slotStopAnimation();
|
||||
- void rewindMovie();
|
||||
- void updateMovie();
|
||||
-
|
||||
protected:
|
||||
virtual void show();
|
||||
virtual void slotExecMenu();
|
||||
@@ -78,16 +62,13 @@
|
||||
void timerEvent(TQTimerEvent*);
|
||||
|
||||
private:
|
||||
- void drawEye();
|
||||
- double buttonScaleFactor(const TQSize& s) const;
|
||||
-
|
||||
- TQMovie* m_movie;
|
||||
+ void drawButton(TQPainter *p);
|
||||
TQPixmap m_active_pixmap;
|
||||
TQPoint m_oldPos;
|
||||
TQSize m_iconSize;
|
||||
TQRect m_sloppyRegion;
|
||||
- int m_hoverTimer;
|
||||
int m_openTimer;
|
||||
+ int m_hoverTimer;
|
||||
bool m_active;
|
||||
bool m_mouseInside;
|
||||
bool m_drag;
|
||||
--- kdebase/kicker/kicker/ui/k_new_mnu.cpp.ORI 2011-12-08 21:24:57.071572016 +0100
|
||||
+++ kdebase/kicker/kicker/ui/k_new_mnu.cpp 2011-12-08 21:25:54.300324465 +0100
|
||||
@@ -1700,8 +1700,6 @@
|
||||
TQPixmap pix( 64, footer->height() );
|
||||
TQPainter p( &pix );
|
||||
p.fillRect( 0, 0, 64, footer->height(), m_branding->colorGroup().brush( TQColorGroup::Base ) );
|
||||
- p.fillRect( 0, m_orientation == BottomUp ? footer->height() - 2 : 0,
|
||||
- 64, 3, KNewButton::self()->borderColor() );
|
||||
p.end();
|
||||
footer->setPaletteBackgroundPixmap( pix );
|
||||
}
|
||||
@@ -3501,6 +3499,8 @@
|
||||
m_systemView->insertItem( iconName, userLabel.isEmpty() ? label : userLabel,
|
||||
descr, "system:/media/" + name, nId++, -1 );
|
||||
|
||||
+ ++it;
|
||||
+ ++it;
|
||||
++it; // skip separator
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
--- kdebase/kioslave/man/kio_man.cpp.orig 2010-08-13 00:37:38.000000000 +0200
|
||||
+++ kdebase/kioslave/man/kio_man.cpp 2011-12-08 21:10:25.720324499 +0100
|
||||
@@ -569,20 +569,24 @@
|
||||
}
|
||||
lastdir = filename.left(filename.findRev('/'));
|
||||
|
||||
- myStdStream = TQString::null;
|
||||
- KProcess proc;
|
||||
- /* TODO: detect availability of 'man --recode' so that this can go
|
||||
- * upstream */
|
||||
- proc << "man" << "--recode" << "UTF-8" << filename;
|
||||
-
|
||||
- TQApplication::connect(&proc, TQT_SIGNAL(receivedStdout (KProcess *, char *, int)),
|
||||
- this, TQT_SLOT(slotGetStdOutputUtf8(KProcess *, char *, int)));
|
||||
- proc.start(KProcess::Block, KProcess::All);
|
||||
-
|
||||
- const TQCString cstr=myStdStream.utf8();
|
||||
- const int len = cstr.size()-1;
|
||||
+ QIODevice *fd= KFilterDev::deviceForFile(filename);
|
||||
+
|
||||
+ if ( !fd || !fd->open(IO_ReadOnly))
|
||||
+ {
|
||||
+ delete fd;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ QByteArray array(fd->readAll());
|
||||
+ kdDebug(7107) << "read " << array.size() << endl;
|
||||
+ fd->close();
|
||||
+ delete fd;
|
||||
+
|
||||
+ if (array.isEmpty())
|
||||
+ return 0;
|
||||
+
|
||||
+ const int len = array.size();
|
||||
buf = new char[len + 4];
|
||||
- qmemmove(buf + 1, cstr.data(), len);
|
||||
+ qmemmove(buf + 1, array.data(), len);
|
||||
buf[0]=buf[len]='\n'; // Start and end with a end of line
|
||||
buf[len+1]=buf[len+2]='\0'; // Two NUL characters at end
|
||||
}
|
@ -1,136 +0,0 @@
|
||||
diff -Nuar kcontrol.ORI/konqhtml/advancedTabDialog.cpp kcontrol/konqhtml/advancedTabDialog.cpp
|
||||
--- kdebase/kcontrol.ORI/konqhtml/advancedTabDialog.cpp 2011-12-09 23:45:04.676253975 +0100
|
||||
+++ kdebase/kcontrol/konqhtml/advancedTabDialog.cpp 2011-12-09 23:46:28.239256986 +0100
|
||||
@@ -58,7 +58,6 @@
|
||||
layout->addSpacing( 20 );
|
||||
layout->addStretch();
|
||||
|
||||
- connect(m_advancedWidget->m_pNewTabsInBackground, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pOpenAfterCurrentPage, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pTabConfirm, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pTabCloseActivatePrevious, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
@@ -76,7 +75,6 @@
|
||||
void advancedTabDialog::load()
|
||||
{
|
||||
m_pConfig->setGroup("FMSettings");
|
||||
- m_advancedWidget->m_pNewTabsInBackground->setChecked( ! (m_pConfig->readBoolEntry( "NewTabsInFront", false )) );
|
||||
m_advancedWidget->m_pOpenAfterCurrentPage->setChecked( m_pConfig->readBoolEntry( "OpenAfterCurrentPage", false ) );
|
||||
m_advancedWidget->m_pPermanentCloseButton->setChecked( m_pConfig->readBoolEntry( "PermanentCloseButton", false ) );
|
||||
m_advancedWidget->m_pKonquerorTabforExternalURL->setChecked( m_pConfig->readBoolEntry( "KonquerorTabforExternalURL", false ) );
|
||||
@@ -92,7 +90,6 @@
|
||||
void advancedTabDialog::save()
|
||||
{
|
||||
m_pConfig->setGroup("FMSettings");
|
||||
- m_pConfig->writeEntry( "NewTabsInFront", !(m_advancedWidget->m_pNewTabsInBackground->isChecked()) );
|
||||
m_pConfig->writeEntry( "OpenAfterCurrentPage", m_advancedWidget->m_pOpenAfterCurrentPage->isChecked() );
|
||||
m_pConfig->writeEntry( "PermanentCloseButton", m_advancedWidget->m_pPermanentCloseButton->isChecked() );
|
||||
m_pConfig->writeEntry( "KonquerorTabforExternalURL", m_advancedWidget->m_pKonquerorTabforExternalURL->isChecked() );
|
||||
diff -Nuar kcontrol.ORI/konqhtml/advancedTabOptions.ui kcontrol/konqhtml/advancedTabOptions.ui
|
||||
--- kdebase/kcontrol.ORI/konqhtml/advancedTabOptions.ui 2011-12-09 23:45:04.674267416 +0100
|
||||
+++ kdebase/kcontrol/konqhtml/advancedTabOptions.ui 2011-12-09 23:56:01.440255647 +0100
|
||||
@@ -62,6 +62,17 @@
|
||||
</widget>
|
||||
<widget class="QCheckBox">
|
||||
<property name="name">
|
||||
+ <cstring>m_pNewTabsInBackground</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>O&pen new tabs in the background</string>
|
||||
+ </property>
|
||||
+ <property name="whatsThis" stdset="0">
|
||||
+ <string>This will open a new tab in the background, instead of in the foreground.</string>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <widget class="QCheckBox">
|
||||
+ <property name="name">
|
||||
<cstring>m_pOpenAfterCurrentPage</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
diff -Nuar konqueror.ORI/konq_guiclients.cc konqueror/konq_guiclients.cc
|
||||
--- kdebase/konqueror.ORI/konq_guiclients.cc 2011-12-09 23:44:28.950255993 +0100
|
||||
+++ kdebase/konqueror/konq_guiclients.cc 2011-12-09 23:49:31.432261289 +0100
|
||||
@@ -115,6 +115,11 @@
|
||||
openInTabElement.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( openInTabElement );
|
||||
|
||||
+ TQDomElement openInTabFrontElement = m_doc.createElement( "action" );
|
||||
+ openInTabFrontElement.setAttribute( "name", "openintabfront" );
|
||||
+ openInTabFrontElement.setAttribute( "group", "tabhandling" );
|
||||
+ menu.appendChild( openInTabFrontElement );
|
||||
+
|
||||
TQDomElement separatorElement = m_doc.createElement( "separator" );
|
||||
separatorElement.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( separatorElement );
|
||||
diff -Nuar konqueror.ORI/konq_mainwindow.cc konqueror/konq_mainwindow.cc
|
||||
--- kdebase/konqueror.ORI/konq_mainwindow.cc 2011-12-09 23:44:29.030265039 +0100
|
||||
+++ kdebase/konqueror/konq_mainwindow.cc 2011-12-09 23:54:27.518255409 +0100
|
||||
@@ -2727,6 +2727,14 @@
|
||||
openURL( 0L, popupItems.getFirst()->url() );
|
||||
}
|
||||
|
||||
+void KonqMainWindow::slotPopupNewTabAtFront()
|
||||
+{
|
||||
+ KConfig *config = KGlobal::config();
|
||||
+ KConfigGroupSaver cs( config, TQString::fromLatin1("FMSettings") );
|
||||
+ bool openAfterCurrentPage = config->readBoolEntry( "OpenAfterCurrentPage", false );
|
||||
+ popupNewTab(true, openAfterCurrentPage);
|
||||
+}
|
||||
+
|
||||
void KonqMainWindow::slotPopupNewTab()
|
||||
{
|
||||
bool openAfterCurrentPage = KonqSettings::openAfterCurrentPage();
|
||||
@@ -2735,7 +2743,7 @@
|
||||
if (KApplication::keyboardMouseState() & Qt::ShiftButton)
|
||||
newTabsInFront = !newTabsInFront;
|
||||
|
||||
- popupNewTab(newTabsInFront, openAfterCurrentPage);
|
||||
+ popupNewTab(false, openAfterCurrentPage);
|
||||
}
|
||||
|
||||
void KonqMainWindow::slotPopupNewTabRight()
|
||||
@@ -2755,16 +2763,12 @@
|
||||
KFileItemListIterator it ( popupItems );
|
||||
KonqOpenURLRequest req;
|
||||
req.newTab = true;
|
||||
- req.newTabInFront = false;
|
||||
+ req.newTabInFront = infront;
|
||||
req.openAfterCurrentPage = openAfterCurrentPage;
|
||||
req.args = popupUrlArgs;
|
||||
|
||||
for ( ; it.current(); ++it )
|
||||
{
|
||||
- if ( infront && it.atLast() )
|
||||
- {
|
||||
- req.newTabInFront = true;
|
||||
- }
|
||||
openURL( 0L, (*it)->url(), TQString::null, req );
|
||||
}
|
||||
}
|
||||
@@ -4783,8 +4787,14 @@
|
||||
else
|
||||
tab_new_x = "tab_new_bg" ;
|
||||
|
||||
- actNewTab = new KAction( i18n( "Open in &New Tab" ), tab_new_x, 0, this, TQT_SLOT( slotPopupNewTab() ), konqyMenuClient->actionCollection(), "openintab" );
|
||||
- actNewTab->setToolTip( i18n( "Open the document in a new tab" ) );
|
||||
+ KAction *actNewTab = new KAction( i18n( "Open in &Background Tab" ), "tab_new_bg", 0, this, TQT_SLOT( slotPopupNewTab() ), actionCollection(), "openintab" );
|
||||
+ actNewTab->setStatusText( i18n( "Open the document in a new background tab" ) );
|
||||
+ KAction *actNewTabFront = new KAction( i18n( "Open in &New Tab" ), "tab_new", 0, this, TQT_SLOT( slotPopupNewTabAtFront() ), actionCollection(), "openintabfront" );
|
||||
+ actNewTabFront->setStatusText( i18n( "Open the document in a new foreground tab" ) );
|
||||
+ actNewTab = new KAction( i18n( "Open in &Background Tab" ), tab_new_x, 0, this, TQT_SLOT( slotPopupNewTab() ), konqyMenuClient->actionCollection(), "openintab" );
|
||||
+ actNewTabFront = new KAction( i18n( "Open in &New Tab" ), tab_new_x, 0, this, TQT_SLOT( slotPopupNewTabAtFront() ), konqyMenuClient->actionCollection(), "openintabfront" );
|
||||
+ actNewTab->setToolTip( i18n( "Open the document in a new background tab" ) );
|
||||
+ actNewTabFront->setToolTip( i18n( "Open the document in a new foreground tab" ) );
|
||||
doTabHandling = true;
|
||||
}
|
||||
|
||||
diff -Nuar konqueror.ORI/konq_mainwindow.h konqueror/konq_mainwindow.h
|
||||
--- kdebase/konqueror.ORI/konq_mainwindow.h 2011-12-09 23:44:28.941260682 +0100
|
||||
+++ kdebase/konqueror/konq_mainwindow.h 2011-12-09 23:54:57.772255487 +0100
|
||||
@@ -444,6 +444,7 @@
|
||||
void slotPopupNewWindow();
|
||||
void slotPopupThisWindow();
|
||||
void slotPopupNewTab();
|
||||
+ void slotPopupNewTabAtFront();
|
||||
void slotPopupNewTabRight();
|
||||
void slotPopupPasteTo();
|
||||
void slotRemoveView();
|
@ -1,29 +0,0 @@
|
||||
Index: kdebase/kcontrol/iccconfig/iccconfig.cpp
|
||||
===================================================================
|
||||
--- kdebase/kcontrol/iccconfig/iccconfig.cpp (revision 1220926)
|
||||
+++ kdebase/kcontrol/iccconfig/iccconfig.cpp (revision 1220927)
|
||||
@@ -286,7 +286,7 @@
|
||||
base->deleteProfileButton->setFixedWidth(90);
|
||||
|
||||
XRROutputInfo *output_info;
|
||||
- KRandrSimpleAPI *randrsimple = new KRandrSimpleAPI::KRandrSimpleAPI();
|
||||
+ KRandrSimpleAPI *randrsimple = new KRandrSimpleAPI();
|
||||
|
||||
config->setReadDefaults( useDefaults );
|
||||
|
||||
@@ -356,7 +356,7 @@
|
||||
{
|
||||
int i;
|
||||
int j;
|
||||
- KRandrSimpleAPI *randrsimple = new KRandrSimpleAPI::KRandrSimpleAPI();
|
||||
+ KRandrSimpleAPI *randrsimple = new KRandrSimpleAPI();
|
||||
|
||||
// Write system configuration
|
||||
systemconfig->setGroup(NULL);
|
||||
@@ -408,4 +408,4 @@
|
||||
" for a more lifelike and vibrant image.");
|
||||
}
|
||||
|
||||
-#include "iccconfig.moc"
|
||||
\ No newline at end of file
|
||||
+#include "iccconfig.moc"
|
@ -1,19 +0,0 @@
|
||||
*** kdebase/ksmserver/shutdowndlg.cpp.ORI 2011-08-23 21:42:55.206965177 +0200
|
||||
--- kdebase/ksmserver/shutdowndlg.cpp 2011-08-23 21:43:26.429965029 +0200
|
||||
***************
|
||||
*** 80,86 ****
|
||||
{
|
||||
DCOPRef("kicker", "KMenu").call("hideMenu"); // Make sure the K Menu is completely removed from the screen before taking a snapshot...
|
||||
m_grayImage = TQPixmap::grabWindow(qt_xrootwin(), 0, 0, TQApplication::desktop()->width(), TQApplication::desktop()->height()).convertToImage();
|
||||
! m_unfadedImage = TQImage::TQImage();
|
||||
resize(0, 0);
|
||||
setShown(true);
|
||||
TQTimer::singleShot( 500, this, TQT_SLOT( slotPaintEffect() ) );
|
||||
--- 80,86 ----
|
||||
{
|
||||
DCOPRef("kicker", "KMenu").call("hideMenu"); // Make sure the K Menu is completely removed from the screen before taking a snapshot...
|
||||
m_grayImage = TQPixmap::grabWindow(qt_xrootwin(), 0, 0, TQApplication::desktop()->width(), TQApplication::desktop()->height()).convertToImage();
|
||||
! m_unfadedImage = TQImage();
|
||||
resize(0, 0);
|
||||
setShown(true);
|
||||
TQTimer::singleShot( 500, this, TQT_SLOT( slotPaintEffect() ) );
|
@ -1,20 +0,0 @@
|
||||
diff -rcb kdebase/ksmserver/shutdowndlg.h kdebase.patch/ksmserver/shutdowndlg.h
|
||||
*** kdebase/ksmserver/shutdowndlg.h Sat Sep 25 23:33:51 2010
|
||||
--- kdebase.patch/ksmserver/shutdowndlg.h Thu Dec 9 14:58:43 2010
|
||||
***************
|
||||
*** 32,38 ****
|
||||
|
||||
/* We acknowledge the the dbus API is unstable */
|
||||
#define DBUS_API_SUBJECT_TO_CHANGE
|
||||
! #include <dbus/connection.h>
|
||||
#include <libhal.h>
|
||||
|
||||
// The (singleton) widget that makes/fades the desktop gray.
|
||||
--- 32,38 ----
|
||||
|
||||
/* We acknowledge the the dbus API is unstable */
|
||||
#define DBUS_API_SUBJECT_TO_CHANGE
|
||||
! #include <dbus/dbus.h>
|
||||
#include <libhal.h>
|
||||
|
||||
// The (singleton) widget that makes/fades the desktop gray.
|
@ -1,19 +0,0 @@
|
||||
--- kdebase/startkde.ORI 2011-12-11 18:55:25.873027885 +0100
|
||||
+++ kdebase/startkde 2011-12-11 18:56:37.885065246 +0100
|
||||
@@ -144,14 +144,14 @@
|
||||
fi
|
||||
if [ -d /opt/kde3 ]; then
|
||||
if [ -n "$KDEDIRS" ]; then
|
||||
- export KDEDIRS=$KDEDIRS:/opt/kde3/:/usr/
|
||||
+ export KDEDIRS=/opt/kde3/:$KDEDIRS:/usr/
|
||||
else
|
||||
export KDEDIRS=/opt/kde3/:/usr/
|
||||
fi
|
||||
fi
|
||||
if [ -d /opt/trinity ]; then
|
||||
if [ -n "$KDEDIRS" ]; then
|
||||
- export KDEDIRS=$KDEDIRS:/opt/trinity/:/usr/
|
||||
+ export KDEDIRS=/opt/trinity/:$KDEDIRS:/usr/
|
||||
else
|
||||
export KDEDIRS=/opt/trinity/:/usr/
|
||||
fi
|
@ -1,757 +0,0 @@
|
||||
# Default version for this component
|
||||
%if "%{?version}" == ""
|
||||
%define version 3.5.12
|
||||
%endif
|
||||
%define release 15
|
||||
|
||||
# If TDE is built in a specific prefix (e.g. /opt/trinity), the release will be suffixed with ".opt".
|
||||
%if "%{?_prefix}" != "/usr"
|
||||
%define _variant .opt
|
||||
%define _docdir %{_prefix}/share/doc
|
||||
%endif
|
||||
|
||||
# TDE 3.5.12 specific building variables
|
||||
BuildRequires: autoconf automake libtool m4
|
||||
%define tde_docdir %{_docdir}
|
||||
%define tde_libdir %{_libdir}/kde3
|
||||
|
||||
# Older RHEL/Fedora versions use packages named "qt", "qt-devel", ..
|
||||
# whereas newer versions use "qt3", "qt3-devel" ...
|
||||
%if 0%{?rhel} >= 6 || 0%{?fedora} >= 8
|
||||
%define _qt_suffix 3
|
||||
%endif
|
||||
|
||||
|
||||
Name: trinity-kdebase
|
||||
Version: %{?version}
|
||||
Release: %{?release}%{?dist}%{?_variant}
|
||||
License: GPL
|
||||
Summary: Trinity KDE Base Programs
|
||||
Group: User Interface/Desktops
|
||||
|
||||
Vendor: Trinity Project
|
||||
Packager: Francois Andriot <francois.andriot@free.fr>
|
||||
URL: http://www.trinitydesktop.org/
|
||||
|
||||
Prefix: %{_prefix}
|
||||
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
|
||||
|
||||
Source0: kdebase-%{version}.tar.gz
|
||||
|
||||
# Wrapper script to prevent Plasma launch at Trinity Startup
|
||||
Source1: plasma-desktop
|
||||
|
||||
# Pam configuration files for RHEL / Fedora
|
||||
Source2: pamd.kdm-trinity%{?dist}
|
||||
Source3: pamd.kdm-trinity-np%{?dist}
|
||||
Source4: pamd.kcheckpass-trinity%{?dist}
|
||||
Source5: pamd.kscreensaver-trinity%{?dist}
|
||||
|
||||
# TDE Official patches (from SVN), unmodified
|
||||
# [kdebase/kcontrol] fix for openssl 1.0
|
||||
Patch1: http://www.trinitydesktop.org/patches/r1201523.diff
|
||||
# [kdebase/kcontrol] make it compatible with openssl < 1.0
|
||||
Patch2: http://www.trinitydesktop.org/patches/r1201705.diff
|
||||
# Fix My Documents shortcut on desktop
|
||||
Patch3: http://www.trinitydesktop.org/patches/r1182808.diff
|
||||
# [kdebase] fixed an incompatibility with gcc 4.5
|
||||
Patch4: http://www.trinitydesktop.org/patches/r1221326.diff
|
||||
|
||||
# TDE Official patches (from SVN), modified
|
||||
# [kdebase/ksmserver/shutdowndlg.cpp] Fixed invalid constructor per GCC 4.5.2
|
||||
Patch5: kdebase-3.5.12-r1220975.patch
|
||||
# [kdebase] Another invalid constructor per gcc 4.5
|
||||
Patch6: kdebase-3.5.12-r1220927.patch
|
||||
|
||||
# TDE unofficial patches, fixing FTBFS
|
||||
## Fix for DBUS include files in RHEL6
|
||||
Patch7: kdebase-3.5.12-shutdowndlg-dbus-include.patch
|
||||
## [kdebase/kcontrol]: disable components that depends of krandr (old distros)
|
||||
Patch8: kdebase-3.5.12-disable-krandr.patch
|
||||
|
||||
# TDE for RHEL/Fedora specific patches
|
||||
## [kdebase/kdesu] Remove 'ignore' button on 'kdesu' dialog box
|
||||
Patch10: kdebase-3.5.12-kdesu-noignorebutton.patch
|
||||
## [kdebase/kdesktop] Modifies 'open terminal here' on desktop
|
||||
Patch11: kdebase-3.5.12-desktop-openterminalhere.patch
|
||||
## [kdebase/kioslave] Forces HAL backend to use HAL mount options
|
||||
Patch12: kdebase-3.5.12-halmountoptions.patch
|
||||
## [kdebase/kdm/kfrontend] Global Xsession file is '/etc/X11/xinit/Xsession'
|
||||
Patch13: kdebase-3.5.13-genkdmconf_Xsession_location.patch
|
||||
## [kdebase/kicker/kicker/ui] Fix kickoff menu issues
|
||||
Patch14: kdebase-3.5.12-kickoff_unstable.patch
|
||||
## [kdebase/startkde] Sets default Start Icon in 'kickerrc'
|
||||
Patch15: kdebase-3.5.13-startkde_icon.patch
|
||||
## [kdebase/startkde] Fixes duplicate and incorrect TDE directories location
|
||||
Patch16: kdebase-3.5.12-startkde_directories.patch
|
||||
|
||||
# TDE unofficial patches for enhanced features
|
||||
## [kdebase/kate] Restores the 'number of files' and sorting widgets to the Kate configuration
|
||||
Patch20: kdebase-3.5.13-kate_mru.patch
|
||||
## [kdebase/kioslave/man] Fix kio_man for older distros without 'man-db'
|
||||
Patch21: kdebase-3.5.12-kio_man_utf8.patch
|
||||
## [kdebase/konqueror] Re-enable 'open tab in background'
|
||||
Patch22: kdebase-3.5.12-konq_menu_tab_background.patch
|
||||
## [kdebase/konqueror/sidebar] Fix error message on documents parent folder
|
||||
Patch23: kdebase-3.5.13-konqsidebar_documents.patch
|
||||
## [kdebase/kdesktop/lock] Fix missing black background
|
||||
Patch29: kdebase-3.5.12-kdesktop_lock_fix.patch
|
||||
## [kdebase/kdm/kfrontend] Allows to hide KDM menu button
|
||||
Patch30: kdebase-3.5.12-kdm_hide_menu_button.patch
|
||||
|
||||
# Fedora 15 Theme: "Lovelock"
|
||||
%if 0%{?fedora} == 15
|
||||
Requires: lovelock-backgrounds-single
|
||||
%define tde_bg /usr/share/backgrounds/lovelock/default/standard/lovelock.png
|
||||
|
||||
Requires: fedora-release-notes
|
||||
%define tde_aboutlabel Fedora 15
|
||||
%define tde_aboutpage /usr/share/doc/HTML/fedora-release-notes/index.html
|
||||
%endif
|
||||
|
||||
# Fedora 16 Theme: "Verne"
|
||||
%if 0%{?fedora} == 16
|
||||
Requires: verne-backgrounds-single
|
||||
%define tde_bg /usr/share/backgrounds/verne/default/standard/verne.png
|
||||
|
||||
Requires: fedora-release-notes
|
||||
%define tde_aboutlabel Fedora 16
|
||||
%define tde_aboutpage /usr/share/doc/HTML/fedora-release-notes/index.html
|
||||
%endif
|
||||
|
||||
# RHEL 5 Theme
|
||||
%if 0%{?rhel} == 5
|
||||
Requires: desktop-backgrounds-basic
|
||||
%define tde_bg /usr/share/backgrounds/images/default.jpg
|
||||
|
||||
Requires: indexhtml
|
||||
%define tde_aboutlabel Enterprise Linux 5
|
||||
%define tde_aboutpage /usr/share/doc/HTML/index.html
|
||||
%endif
|
||||
|
||||
# RHEL 6 Theme
|
||||
%if 0%{?rhel} == 6
|
||||
Requires: redhat-logos
|
||||
%define tde_bg /usr/share/backgrounds/default.png
|
||||
|
||||
Requires: redhat-indexhtml
|
||||
%define tde_aboutlabel Enterprise Linux 6
|
||||
%define tde_aboutpage /usr/share/doc/HTML/index.html
|
||||
%endif
|
||||
|
||||
BuildRequires: tqtinterface-devel
|
||||
BuildRequires: trinity-arts-devel
|
||||
BuildRequires: trinity-kdelibs-devel
|
||||
BuildRequires: qt%{?_qt_suffix}-devel
|
||||
BuildRequires: openssl-devel
|
||||
BuildRequires: avahi-devel avahi-qt3-devel
|
||||
BuildRequires: imake
|
||||
BuildRequires: xorg-x11-proto-devel
|
||||
BuildRequires: OpenEXR-devel
|
||||
BuildRequires: libsmbclient-devel
|
||||
BuildRequires: dbus-devel
|
||||
BuildRequires: dbus-qt-devel
|
||||
BuildRequires: lm_sensors-devel
|
||||
BuildRequires: libfontenc-devel
|
||||
BuildRequires: hal-devel
|
||||
BuildRequires: audiofile-devel alsa-lib-devel
|
||||
BuildRequires: libraw1394-devel
|
||||
BuildRequires: openldap-devel
|
||||
BuildRequires: libvorbis-devel
|
||||
BuildRequires: pam-devel
|
||||
BuildRequires: libXdmcp-devel
|
||||
BuildRequires: libxkbfile-devel
|
||||
BuildRequires: libusb-devel
|
||||
BuildRequires: esound-devel
|
||||
BuildRequires: glib2-devel
|
||||
BuildRequires: libXcomposite-devel
|
||||
BuildRequires: libXtst-devel
|
||||
BuildRequires: libXdamage-devel
|
||||
BuildRequires: xorg-x11-font-utils
|
||||
|
||||
# These dependancies are not met in RHEL
|
||||
%if 0%{?fedora}
|
||||
BuildRequires: jack-audio-connection-kit-devel
|
||||
BuildRequires: nas-devel
|
||||
%endif
|
||||
|
||||
Requires: tqtinterface
|
||||
Requires: trinity-arts
|
||||
Requires: trinity-kdelibs
|
||||
Requires: qt%{?_qt_suffix}
|
||||
Requires: openssl
|
||||
Requires: avahi avahi-qt3
|
||||
Requires: dbus-qt
|
||||
# Provides the global Xsession script (/etc/X11/xinit/Xsession)
|
||||
Requires: xorg-x11-xinit
|
||||
|
||||
|
||||
# RHEL 6 Configuration files are provided in separate packages
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Requires: kde-settings-kdm
|
||||
%endif
|
||||
Requires: redhat-menus
|
||||
|
||||
#Provides: kdebase%{?_qt_suffix} = %{version}
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Provides: kdebase%{?_qt_suffix} = %{version}
|
||||
Obsoletes: kdebase%{?_qt_suffix} <= 3.5.10
|
||||
%endif
|
||||
|
||||
|
||||
# Required for Fedora LiveCD
|
||||
Provides: service(graphical-login)
|
||||
|
||||
|
||||
%description
|
||||
Core applications for the Trinity K Desktop Environment. Included are: kdm
|
||||
(replacement for xdm), kwin (window manager), konqueror (filemanager,
|
||||
web browser, ftp client, ...), konsole (xterm replacement), kpanel
|
||||
(application starter and desktop pager), kaudio (audio server),
|
||||
kdehelp (viewer for kde help files, info and man pages), kthememgr
|
||||
(system for managing alternate theme packages) plus other KDE
|
||||
components (kcheckpass, kikbd, kscreensaver, kcontrol, kfind,
|
||||
kfontmanager, kmenuedit).
|
||||
|
||||
|
||||
%package devel
|
||||
Requires: %{name}
|
||||
Requires: %{name}-libs = %{version}-%{release}
|
||||
Requires: trinity-kdelibs-devel
|
||||
Summary: %{summary} - Development files
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Provides: kdebase%{?_qt_suffix}-devel = %{version}
|
||||
Obsoletes: kdebase%{?_qt_suffix}-devel <= 3.5.10
|
||||
%endif
|
||||
|
||||
Group: Development/Libraries
|
||||
%description devel
|
||||
Header files for developing applications using %{name}.
|
||||
Install kdebase-devel if you want to develop or compile Konqueror,
|
||||
Kate plugins or KWin styles.
|
||||
|
||||
|
||||
%package extras
|
||||
Summary: Extra applications from %{name}
|
||||
Group: User Interface/Desktops
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Provides: kdebase%{?_qt_suffix}-extras = %{version}
|
||||
Obsoletes: kdebase%{?_qt_suffix}-extras <= 3.5.10
|
||||
%endif
|
||||
%description extras
|
||||
%{summary}, including:
|
||||
* kappfinder
|
||||
* kpager
|
||||
* ktip
|
||||
* kpersonalizer
|
||||
|
||||
|
||||
%package libs
|
||||
Summary: %{name} runtime libraries
|
||||
Group: System Environment/Libraries
|
||||
Requires: trinity-kdelibs
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Provides: kdebase%{?_qt_suffix}-libs = %{version}
|
||||
Obsoletes: kdebase%{?_qt_suffix}-libs <= 3.5.10
|
||||
%endif
|
||||
Requires: %{name} = %{version}-%{release}
|
||||
%description libs
|
||||
%{summary}
|
||||
|
||||
|
||||
%package pim-ioslaves
|
||||
Summary: PIM KIOslaves from %{name}
|
||||
Group: System Environment/Libraries
|
||||
%if "%{?_prefix}" == "/usr"
|
||||
Provides: kdebase%{?_qt_suffix}-pim-ioslaves = %{version}
|
||||
Obsoletes: kdebase%{?_qt_suffix}-pim-ioslaves <= 3.5.10
|
||||
%endif
|
||||
%description pim-ioslaves
|
||||
Protocol handlers (KIOslaves) for personal information management, including:
|
||||
* kio_ldap
|
||||
* kio_nntp
|
||||
* kio_pop3
|
||||
* kio_smtp
|
||||
|
||||
|
||||
%prep
|
||||
%setup -q -n kdebase
|
||||
%patch1 -p1
|
||||
%patch2 -p1
|
||||
%patch3 -p1
|
||||
%patch4 -p1
|
||||
%patch5 -p1
|
||||
%patch6 -p1
|
||||
%patch7 -p1
|
||||
%if 0%{?rhel} && 0%{?rhel} < 6
|
||||
%patch8 -p1
|
||||
%endif
|
||||
|
||||
%patch10 -p1
|
||||
%patch11 -p1
|
||||
%patch12 -p1
|
||||
%patch13 -p1
|
||||
%patch14 -p1
|
||||
%patch15 -p1
|
||||
%patch16 -p1
|
||||
|
||||
%patch20 -p4
|
||||
%if 0%{?rhel} > 0
|
||||
%patch21 -p1
|
||||
%endif
|
||||
%patch22 -p1
|
||||
%patch23 -p1
|
||||
|
||||
%patch29 -p1
|
||||
%patch30 -p1
|
||||
|
||||
# Applies an optional distro-specific graphical theme
|
||||
%if "%{?tde_bg}" != ""
|
||||
# KDM Background
|
||||
%__sed -i "kdm/kfrontend/genkdmconf.c" \
|
||||
-e 's|"Wallpaper=isadora.png\n"|"Wallpaper=%{tde_bg}\n"|'
|
||||
|
||||
# TDE user default background
|
||||
%__sed -i "kpersonalizer/keyecandypage.cpp" \
|
||||
-e 's|#define DEFAULT_WALLPAPER "isadora.png"|#define DEFAULT_WALLPAPER "%{tde_bg}"|'
|
||||
%__sed -i "startkde" \
|
||||
-e 's|/usr/share/wallpapers/isadora.png.desktop|%{tde_bg}|' \
|
||||
-e 's|Wallpaper=isadora.png|Wallpaper=%{tde_bg}|'
|
||||
%endif
|
||||
|
||||
%__cp "/usr/share/aclocal/libtool.m4" "admin/libtool.m4.in"
|
||||
%__cp "/usr/share/libtool/config/ltmain.sh" "admin/ltmain.sh"
|
||||
%__make -f "admin/Makefile.common"
|
||||
|
||||
# TDE branding: removes KUbuntu references [Bug #617]
|
||||
%__sed -i "kcontrol/kdm/kdm-appear.cpp" \
|
||||
-e "s|Welcome to Kubuntu |Welcome to %{tde_aboutlabel} |"
|
||||
%__sed -i "konqueror/about/konq_aboutpage.cc" \
|
||||
-e "s|About Kubuntu|About %{tde_aboutlabel}|" \
|
||||
-e "s|help:/kubuntu/|%{tde_aboutpage}|" \
|
||||
-e "s|Kubuntu Documentation|%{tde_aboutlabel} Documentation|"
|
||||
%__sed -i "konqueror/about/launch.html" \
|
||||
-e "s|help:/kubuntu/about-kubuntu/index.html|%{tde_aboutpage}|"
|
||||
%__sed -i "kdm/config.def" \
|
||||
-e "s|Welcome to Trinity |Welcome to %{tde_aboutlabel} |"
|
||||
|
||||
# TDE default directory in 'startkde' script (KDEDIR)
|
||||
%__sed -i "startkde" \
|
||||
-e "s|/opt/trinity|%{_prefix}|g"
|
||||
|
||||
%build
|
||||
unset QTDIR || : ; . /etc/profile.d/qt.sh
|
||||
export PATH="%{_bindir}:${PATH}"
|
||||
export LDFLAGS="-L%{_libdir} -I%{_includedir}"
|
||||
export IMAKEINCLUDE="-I/usr/share/X11/config"
|
||||
|
||||
%configure \
|
||||
--disable-rpath \
|
||||
--enable-new-ldflags \
|
||||
--disable-dependency-tracking \
|
||||
--disable-debug --disable-warnings --enable-final \
|
||||
--with-pam=yes \
|
||||
--with-kdm-pam=kdm-trinity \
|
||||
--with-kcp-pam=kcheckpass-trinity \
|
||||
--with-kss-pam=kscreensaver-trinity \
|
||||
--with-libraw1394 \
|
||||
--with-openexr \
|
||||
--with-samba \
|
||||
--with-xinerama \
|
||||
--with-xscreensaver \
|
||||
--without-shadow \
|
||||
--enable-closure \
|
||||
--with-extra-includes=%{_includedir}/tqt
|
||||
|
||||
# Do NOT use %{?_smp_mflags} for this package, or it will fail to build !
|
||||
%__make
|
||||
|
||||
%install
|
||||
%__rm -rf %{?buildroot}
|
||||
%__make install DESTDIR=%{?buildroot}
|
||||
|
||||
# Adds a GDM/KDM/XDM session called 'TDE'
|
||||
%__install -D -m 644 \
|
||||
"%{?buildroot}%{_datadir}/apps/kdm/sessions/kde.desktop" \
|
||||
"%{?buildroot}%{_usr}/share/xsessions/tde.desktop"
|
||||
|
||||
# Force session name to be 'TDE'
|
||||
%__sed -i "%{?buildroot}%{_usr}/share/xsessions/tde.desktop" \
|
||||
-e "s,^Name=.*,Name=TDE,"
|
||||
|
||||
# Modifies 'startkde' to set KDEDIR and KDEHOME hardcoded specific for TDE
|
||||
%__sed -i "%{?buildroot}%{_bindir}/startkde" \
|
||||
-e '/^echo "\[startkde\] Starting startkde.".*/ s,$,\nexport KDEDIR=%{_prefix}\nexport KDEHOME=~/.trinity,'
|
||||
|
||||
# Renames '/etc/ksysguarddrc' to avoid conflict with KDE4 'ksysguard'
|
||||
%__mv -f \
|
||||
%{?buildroot}%{_sysconfdir}/ksysguarddrc \
|
||||
%{?buildroot}%{_sysconfdir}/ksysguarddrc.tde
|
||||
|
||||
# TDE 3.5.12: add script "plasma-desktop" to avoid conflict with KDE4
|
||||
%if "%{?_prefix}" != "/usr"
|
||||
%__install -m 755 "%{SOURCE1}" "%{?buildroot}%{_bindir}"
|
||||
%endif
|
||||
|
||||
# PAM configuration files
|
||||
%__install -D -m 644 "%{SOURCE2}" "%{?buildroot}%{_sysconfdir}/pam.d/kdm-trinity"
|
||||
%__install -D -m 644 "%{SOURCE3}" "%{?buildroot}%{_sysconfdir}/pam.d/kdm-trinity-np"
|
||||
%__install -D -m 644 "%{SOURCE4}" "%{?buildroot}%{_sysconfdir}/pam.d/kcheckpass-trinity"
|
||||
%__install -D -m 644 "%{SOURCE5}" "%{?buildroot}%{_sysconfdir}/pam.d/kscreensaver-trinity"
|
||||
|
||||
# KDM configuration for RHEL/Fedora
|
||||
%__sed -i "%{?buildroot}%{_datadir}/config/kdm/kdmrc" \
|
||||
%if 0%{?fedora} >= 16
|
||||
-e "s/^#*MinShowUID=.*/MinShowUID=1000/"
|
||||
%else
|
||||
-e "s/^#*MinShowUID=.*/MinShowUID=500/"
|
||||
%endif
|
||||
|
||||
# Moves the XDG configuration files to TDE directory
|
||||
%if "%{_prefix}" != "/usr"
|
||||
%__mkdir_p "%{?buildroot}%{_prefix}/etc"
|
||||
%__mv -f "%{?buildroot}%{_sysconfdir}/xdg" "%{?buildroot}%{_prefix}/etc"
|
||||
%endif
|
||||
|
||||
%clean
|
||||
%__rm -rf %{?buildroot}
|
||||
|
||||
|
||||
%post
|
||||
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
|
||||
gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
|
||||
update-desktop-database 2> /dev/null || :
|
||||
# Dirty hack to install '/etc/ksysguardrc' alongside with KDE4
|
||||
[ -r "%{_sysconfdir}/ksysguarddrc" ] || cp -f "%{_sysconfdir}/ksysguarddrc.tde" "%{_sysconfdir}/ksysguarddrc"
|
||||
|
||||
%postun
|
||||
touch --no-create %{_datadir}/icons/crystalsvg 2> /dev/null || :
|
||||
gtk-update-icon-cache --quiet %{_datadir}/icons/crystalsvg 2> /dev/null || :
|
||||
update-desktop-database 2> /dev/null || :
|
||||
|
||||
|
||||
%post libs
|
||||
/sbin/ldconfig
|
||||
|
||||
%postun libs
|
||||
/sbin/ldconfig
|
||||
|
||||
%post extras
|
||||
for f in crystalsvg hicolor ; do
|
||||
touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||:
|
||||
gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||:
|
||||
done
|
||||
update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
|
||||
|
||||
%postun extras
|
||||
for f in crystalsvg hicolor ; do
|
||||
touch --no-create %{_datadir}/icons/${f} 2> /dev/null ||:
|
||||
gtk-update-icon-cache -q %{_datadir}/icons/${f} 2> /dev/null ||:
|
||||
done
|
||||
update-desktop-database %{_datadir}/applications > /dev/null 2>&1 || :
|
||||
|
||||
|
||||
%files extras
|
||||
%defattr(-,root,root,-)
|
||||
# kappfinder
|
||||
%{_bindir}/kappfinder
|
||||
%{_datadir}/applications/kde/kappfinder.desktop
|
||||
%{_datadir}/applnk/System/kappfinder.desktop
|
||||
%{_datadir}/apps/kappfinder/
|
||||
%{_datadir}/icons/hicolor/*/apps/kappfinder.png
|
||||
# ktip
|
||||
%{_bindir}/ktip
|
||||
%{_datadir}/applications/kde/ktip.desktop
|
||||
%{_datadir}/applnk/Toys/ktip.desktop
|
||||
%{_datadir}/apps/kdewizard
|
||||
%{_datadir}/autostart/ktip.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/ktip*
|
||||
# kpersonalizer
|
||||
%{_bindir}/kpersonalizer
|
||||
%{_datadir}/applications/kde/kpersonalizer.desktop
|
||||
%{_datadir}/applnk/System/kpersonalizer.desktop
|
||||
%{_datadir}/apps/kpersonalizer/
|
||||
%{_datadir}/icons/crystalsvg/*/apps/kpersonalizer.png
|
||||
# kpager
|
||||
%{_bindir}/kpager
|
||||
%{_datadir}/applications/kde/kpager.desktop
|
||||
%{_datadir}/applnk/Utilities/kpager.desktop
|
||||
%{_datadir}/icons/hicolor/*/apps/kpager.png
|
||||
|
||||
|
||||
%files
|
||||
%defattr(-,root,root,-)
|
||||
# kappfinder
|
||||
%exclude %{_datadir}/applications/kde/kappfinder.desktop
|
||||
%exclude %{_datadir}/applnk/System/kappfinder.desktop
|
||||
%exclude %{_datadir}/apps/kappfinder/
|
||||
%exclude %{_datadir}/icons/hicolor/*/apps/kappfinder.png
|
||||
# ktip
|
||||
%exclude %{_datadir}/applications/kde/ktip.desktop
|
||||
%exclude %{_datadir}/applnk/Toys/ktip.desktop
|
||||
%exclude %{_datadir}/apps/kdewizard
|
||||
%exclude %{_datadir}/autostart/ktip.desktop
|
||||
%exclude %{_datadir}/icons/hicolor/*/apps/ktip*
|
||||
# kpersonalizer
|
||||
%exclude %{_datadir}/applications/kde/kpersonalizer.desktop
|
||||
%exclude %{_datadir}/applnk/System/kpersonalizer.desktop
|
||||
%exclude %{_datadir}/apps/kpersonalizer/
|
||||
%exclude %{_datadir}/icons/crystalsvg/*/apps/kpersonalizer.png
|
||||
# kpager
|
||||
%exclude %{_datadir}/applications/kde/kpager.desktop
|
||||
%exclude %{_datadir}/applnk/Utilities/kpager.desktop
|
||||
%exclude %{_datadir}/icons/hicolor/*/apps/kpager.png
|
||||
|
||||
# Pam configuration
|
||||
%{_sysconfdir}/pam.d/*
|
||||
|
||||
%doc AUTHORS COPYING COPYING-DOCS README README.pam
|
||||
%{tde_docdir}/HTML/en/*
|
||||
%config(noreplace) %{_sysconfdir}/ksysguarddrc.tde
|
||||
%{_bindir}/genkdmconf
|
||||
%{_bindir}/kaccess
|
||||
%{_bindir}/kapplymousetheme
|
||||
%{_bindir}/kate
|
||||
%{_bindir}/kblankscrn.kss
|
||||
%{_bindir}/kbookmarkmerger
|
||||
%{_bindir}/kcminit
|
||||
%{_bindir}/kcminit_startup
|
||||
%{_bindir}/kcontrol
|
||||
%{_bindir}/kcontroledit
|
||||
%{_bindir}/kdebugdialog
|
||||
%{_bindir}/kdeinstallktheme
|
||||
%{_bindir}/kdepasswd
|
||||
%{_bindir}/kdesu
|
||||
%attr(0755,root,root) %{_bindir}/kdesud
|
||||
%{_bindir}/kdialog
|
||||
%{_bindir}/kdm
|
||||
%{_bindir}/kdmctl
|
||||
%{_bindir}/keditbookmarks
|
||||
%{_bindir}/keditfiletype
|
||||
%{_bindir}/kfind
|
||||
%{_bindir}/kfmclient
|
||||
%{_bindir}/khelpcenter
|
||||
%{_bindir}/khotkeys
|
||||
%{_bindir}/kinfocenter
|
||||
%{_bindir}/klipper
|
||||
%{_bindir}/kmenuedit
|
||||
%{_bindir}/konqueror
|
||||
%{_bindir}/konsole
|
||||
%{_bindir}/krandom.kss
|
||||
%{_bindir}/krdb
|
||||
%{_bindir}/kreadconfig
|
||||
%{_bindir}/ksmserver
|
||||
%{_bindir}/ksplashsimple
|
||||
%{_bindir}/kstart
|
||||
%{_bindir}/ksysguard
|
||||
%{_bindir}/ksysguardd
|
||||
%{_bindir}/ksystraycmd
|
||||
%{_bindir}/ktrash
|
||||
%{_bindir}/kwin
|
||||
%{_bindir}/kwin_killer_helper
|
||||
%{_bindir}/kwin_rules_dialog
|
||||
%{_bindir}/kwrite
|
||||
%{_bindir}/kwriteconfig
|
||||
%{_bindir}/kxkb
|
||||
%{_bindir}/nspluginscan
|
||||
%{_bindir}/nspluginviewer
|
||||
%{_bindir}/startkde
|
||||
%{_bindir}/kcheckrunning
|
||||
%{_bindir}/kdesktop
|
||||
%{_bindir}/kdesktop_lock
|
||||
%{_bindir}/kdm_config
|
||||
%{_bindir}/kdm_greet
|
||||
%{_bindir}/kfontinst
|
||||
%{_bindir}/kfontview
|
||||
%{_bindir}/krootimage
|
||||
%{_bindir}/kwebdesktop
|
||||
%{_datadir}/autostart/*
|
||||
%{_datadir}/desktop-directories/*
|
||||
%{_datadir}/locale/*/entry.desktop
|
||||
%{_datadir}/locale/l10n
|
||||
%{_datadir}/templates/*
|
||||
%{_datadir}/templates/.source/*
|
||||
%{_datadir}/wallpapers/*
|
||||
%{_bindir}/appletproxy
|
||||
%{_bindir}/drkonqi
|
||||
%{_bindir}/extensionproxy
|
||||
%{_bindir}/kasbar
|
||||
%attr(4755,root,root) %{_bindir}/kcheckpass
|
||||
%{_bindir}/kdeeject
|
||||
%{_bindir}/khc_docbookdig.pl
|
||||
%{_bindir}/khc_htdig.pl
|
||||
%{_bindir}/khc_htsearch.pl
|
||||
%{_bindir}/khc_indexbuilder
|
||||
%{_bindir}/khc_mansearch.pl
|
||||
%{_bindir}/kicker
|
||||
%{_bindir}/knetattach
|
||||
%if 0%{?rhel} >= 6 || 0%{?fedora} >= 15
|
||||
%{_bindir}/krandrtray
|
||||
%endif
|
||||
%{_bindir}/kompmgr
|
||||
%{_bindir}/kpm
|
||||
%{_bindir}/ksplash
|
||||
%{_libdir}/kconf_update_bin
|
||||
%{_datadir}/applnk/*.desktop
|
||||
%{_datadir}/applnk/*/*
|
||||
%{_datadir}/applnk/.hidden/*
|
||||
%exclude %{_datadir}/applnk/.hidden/.directory
|
||||
%{_datadir}/config.kcfg/*
|
||||
%{_bindir}/kio_media_mounthelper
|
||||
%{_bindir}/kdcop
|
||||
%{_bindir}/kdeprintfax
|
||||
%{_bindir}/khc_beagle_index.pl
|
||||
%{_bindir}/khc_beagle_search.pl
|
||||
%{_bindir}/kxdglauncher
|
||||
%{_bindir}/kjobviewer
|
||||
%{_bindir}/klocaldomainurifilterhelper
|
||||
%{_bindir}/kprinter
|
||||
%{_datadir}/applications/*/*
|
||||
%{_datadir}/apps/*
|
||||
%{_datadir}/icons/*color/*/*/*
|
||||
%{_datadir}/icons/crystalsvg/*/*/*
|
||||
%{_datadir}/mimelnk/*/*
|
||||
%{_datadir}/services/*
|
||||
%{_datadir}/servicetypes/*
|
||||
%{_datadir}/sounds/*
|
||||
%{tde_libdir}/*
|
||||
%{_libdir}/libkdeinit_*.*
|
||||
%if "%{_prefix}" != "/usr"
|
||||
%{_prefix}/etc/xdg/menus/applications-merged/kde-essential.menu
|
||||
%{_prefix}/etc/xdg/menus/kde-information.menu
|
||||
%{_prefix}/etc/xdg/menus/kde-screensavers.menu
|
||||
%{_prefix}/etc/xdg/menus/kde-settings.menu
|
||||
%else
|
||||
%{_sysconfdir}/xdg/menus/applications-merged/kde-essential.menu
|
||||
%{_sysconfdir}/xdg/menus/kde-information.menu
|
||||
%{_sysconfdir}/xdg/menus/kde-screensavers.menu
|
||||
%{_sysconfdir}/xdg/menus/kde-settings.menu
|
||||
%endif
|
||||
/usr/share/xsessions/*.desktop
|
||||
# Remove conflicts with redhat-menus
|
||||
%if "%{?_prefix}" != "/usr"
|
||||
%{_bindir}/plasma-desktop
|
||||
%config(noreplace) %{_datadir}/config/*
|
||||
%else
|
||||
%exclude %{_datadir}/config
|
||||
%endif
|
||||
# exclude pim-ioslaves files from main package
|
||||
%exclude %{tde_libdir}/kio_ldap.*
|
||||
%exclude %{tde_libdir}/kio_nntp.*
|
||||
%exclude %{tde_libdir}/kio_pop3.*
|
||||
%exclude %{tde_libdir}/kio_smtp.*
|
||||
%exclude %{_datadir}/services/ldap*.protocol
|
||||
%exclude %{_datadir}/services/nntp*.protocol
|
||||
%exclude %{_datadir}/services/pop3*.protocol
|
||||
%exclude %{_datadir}/services/smtp*.protocol
|
||||
|
||||
# TDE 3.5.12 specific
|
||||
%{_bindir}/kde3
|
||||
%exclude %{_datadir}/applications/kde/display.desktop
|
||||
%exclude %{_datadir}/fonts/override/fonts.dir
|
||||
%{_docdir}/kdm/README
|
||||
|
||||
%files libs
|
||||
%defattr(-,root,root,-)
|
||||
%exclude %{_libdir}/libkdeinit_*.*
|
||||
%{_libdir}/lib*.so.*
|
||||
%{_libdir}/lib*.la
|
||||
|
||||
%files pim-ioslaves
|
||||
%defattr(-,root,root,-)
|
||||
%{tde_libdir}/kio_ldap.*
|
||||
%{tde_libdir}/kio_nntp.*
|
||||
%{tde_libdir}/kio_pop3.*
|
||||
%{tde_libdir}/kio_smtp.*
|
||||
%{_datadir}/services/ldap*.protocol
|
||||
%{_datadir}/services/nntp*.protocol
|
||||
%{_datadir}/services/pop3*.protocol
|
||||
%{_datadir}/services/smtp*.protocol
|
||||
|
||||
%files devel
|
||||
%defattr(-,root,root,-)
|
||||
%{_includedir}/*.h
|
||||
%dir %{_includedir}/kate
|
||||
%{_includedir}/kate/*
|
||||
%dir %{_includedir}/kwin
|
||||
%{_includedir}/kwin/*
|
||||
%dir %{_includedir}/ksgrd
|
||||
%{_includedir}/ksgrd/*
|
||||
%dir %{_includedir}/ksplash
|
||||
%{_includedir}/ksplash/*
|
||||
%{_libdir}/lib*.so
|
||||
%exclude %{_libdir}/libkdeinit_*.*
|
||||
|
||||
%changelog
|
||||
* Thu Jan 05 2012 Francois Andriot <francois.andriot@free.fr> - 3.5.12-15
|
||||
- Add KDM option to hide 'Menu' button on login prompt
|
||||
|
||||
* Wed Dec 21 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-14
|
||||
- Fix kdesktop_lock missing black background on kscreensaver failure
|
||||
|
||||
* Thu Dec 11 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-13
|
||||
- Backports patches from TDE 3.5.13-10
|
||||
- Removes Kubuntu branding [TDE Bug #449]
|
||||
- Fix 'kio_man' on RHEL 5 and RHEL 6 [TDE Bug #714]
|
||||
- Restores the 'number of files' and sorting widgets to the Kate configuration [TDE Bug #244]
|
||||
- Re-enables 'open tab in background' konqueror feature [TDE Bug #245]
|
||||
- Fix error message 'cannot find parent folder' on konqueror sidebar
|
||||
- Fix KDEDIRS and other variables in 'startkde', that messes up translations.
|
||||
|
||||
* Sun Nov 20 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-12
|
||||
- Updates Kickoff menu Fix [TDE Bugs #281, #508]
|
||||
- Add distribution-specific start button icon
|
||||
- Add graphical theme for RHEL 5, RHEL 6, Fedora 15, Fedora 16
|
||||
- Moves XDG files in TDE prefix to avoid conflict with distro-provided KDE
|
||||
- Add "service(graphical-login)"
|
||||
- kdmrc: sets "MinShowUID=500"
|
||||
- Add missing BuildRequires
|
||||
|
||||
* Fri Sep 16 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-11
|
||||
- Add support for RHEL 5.
|
||||
- Remove file conflicts with KDE 4.6.5 under Fedora 15
|
||||
|
||||
* Mon Sep 12 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-10
|
||||
- Add "Group" field
|
||||
|
||||
* Sun Sep 04 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-9
|
||||
- Import to GIT
|
||||
|
||||
* Tue Aug 23 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-8
|
||||
- Add missing BuildRequires
|
||||
- Add Patch7, Patch8, Patch9 to allow compilation under GCC >= 4.5.2
|
||||
|
||||
* Mon Aug 22 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-7
|
||||
- Correct macro to install under "/opt", if desired
|
||||
|
||||
* Wed Jul 20 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-6
|
||||
- Add patch to force halbackend to use HAL-provided mount options
|
||||
|
||||
* Wed Jul 20 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-5
|
||||
- Add patch to modify "Open terminal here" shortcut (now opens in home directory)
|
||||
|
||||
* Tue Jul 19 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-4
|
||||
- Add 'BuildRequires: dbus-qt' to enable HAL support
|
||||
|
||||
* Wed Jun 22 2011 Francois Andriot <francois.andriot@free.fr> - 3.5.12-3
|
||||
- Adds setuid bit on '/usr/bin/kcheckpass'
|
||||
- Removes '/usr/share/applications/kde/display.desktop' (does not work on RHEL 6.0)
|
||||
|
||||
* Mon Dec 20 2010 Francois Andriot <francois.andriot@free.fr> - 3.5.12-2
|
||||
- Add missing Requires
|
||||
- Rename 'kde3.desktop' to 'kde.desktop' in case of default prefix
|
||||
|
||||
* Fri Dec 17 2010 Francois Andriot <francois.andriot@free.fr> - 3.5.12-1
|
||||
- Add macro _kde3_prefix to define custom installation prefix (ex: /opt/kde3)
|
||||
- Add '--with-extra-includes=%{_includedir}/tqt'
|
||||
- Add 'patch3' to remove ignore button on kdesu dialog box
|
||||
- Add 'patch4' r1182808.diff : Fix My Documents shortcut on desktop
|
||||
|
||||
* Wed Dec 14 2010 Francois Andriot <francois.andriot@free.fr> - 3.5.12-0
|
||||
- Initial version
|
||||
- Add script 'plasma-desktop' to prevent KDE4 plasma automatic startup
|
||||
- Add 'patch0' to fix for DBUS include files in RHEL6
|
||||
- Add 'patch1' r1201523.diff : [kdebase/kcontrol] fix for openssl 1.0
|
||||
- Add 'patch2' r1201705.diff : [kdebase/kcontrol] make it compatible with openssl < 1.0
|
||||
|
@ -1,81 +0,0 @@
|
||||
--- kdebase/kdesktop/bgmanager.cc.ORI 2012-09-06 17:20:49.564915154 -0400
|
||||
+++ kdebase/kdesktop/bgmanager.cc 2012-09-06 17:21:01.969682348 -0400
|
||||
@@ -1013,13 +1013,13 @@
|
||||
slotChangeDesktop(0);
|
||||
}
|
||||
|
||||
-#ifdef COMPOSITE
|
||||
void KBackgroundManager::slotCmBackgroundChanged( bool )
|
||||
{
|
||||
+#ifdef COMPOSITE
|
||||
m_tPixmap->fill(TQColor(0, 0x0));
|
||||
m_Hash = 0;
|
||||
slotChangeDesktop(0);
|
||||
-}
|
||||
#endif
|
||||
+}
|
||||
|
||||
#include "bgmanager.moc"
|
||||
--- kdebase/kdesktop/main.cc.ORI 2012-09-07 20:33:09.716283507 +0200
|
||||
+++ kdebase/kdesktop/main.cc 2012-09-07 20:33:31.683842727 +0200
|
||||
@@ -43,7 +43,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/kdesktop/bgmanager.h.ORI 2012-09-07 20:36:28.196299160 +0200
|
||||
+++ kdebase/kdesktop/bgmanager.h 2012-09-07 20:36:52.420812591 +0200
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#include <KBackgroundIface.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/kdesktop/kdesktopapp.h.ORI 2012-09-07 20:37:14.677365503 +0200
|
||||
+++ kdebase/kdesktop/kdesktopapp.h 2012-09-07 20:37:25.194154223 +0200
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <config.h>
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/konsole/konsole/main.cpp.ORI 2012-09-07 20:37:37.749901966 +0200
|
||||
+++ kdebase/konsole/konsole/main.cpp 2012-09-07 20:37:46.683722469 +0200
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
#include "konsole.h"
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/CMakeLists.txt.ORI 2012-09-07 20:41:11.142612361 +0200
|
||||
+++ kdebase/CMakeLists.txt 2012-09-07 20:42:40.138822080 +0200
|
||||
@@ -78,6 +78,7 @@
|
||||
option( WITH_ARTS "Enable aRts support" OFF )
|
||||
option( WITH_I8K "Enable Dell laptop support (ksysguard)" OFF )
|
||||
option( WITH_HAL "Enable HAL support" OFF )
|
||||
+option( WITH_COMPOSITE "Enable COMPOSITE support" OFF )
|
||||
|
||||
|
||||
##### user requested modules ####################
|
||||
--- kdebase/config.h.cmake.composite 2012-09-07 20:44:49.980208832 +0200
|
||||
+++ kdebase/config.h.cmake 2012-09-07 20:44:56.929068934 +0200
|
||||
@@ -177,3 +177,6 @@
|
||||
|
||||
// tsak
|
||||
#cmakedefine BUILD_TSAK "@BUILD_TSAK@"
|
||||
+
|
||||
+ // kdesktop, konsole
|
||||
+ #cmakedefine WITH_COMPOSITE "@WITH_COMPOSITE@"
|
@ -1,33 +0,0 @@
|
||||
commit b0fa10df6cf9ba377d6bfdef719efc8ca4fe57a0
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1337062555 -0500
|
||||
|
||||
Add drag and drop to kate file list in manual mode
|
||||
|
||||
diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp
|
||||
index bc5b0a1..bd2d087 100644
|
||||
--- a/kate/app/katefilelist.cpp
|
||||
+++ b/kate/app/katefilelist.cpp
|
||||
@@ -102,7 +102,7 @@ KateFileList::KateFileList (KateMainWindow *main,
|
||||
addColumn("Document Name");
|
||||
|
||||
setSelectionMode( TQListView::Single );
|
||||
- setSorting( 0, true );
|
||||
+ setSortType(KateFileList::sortByID);
|
||||
setShowToolTips( false );
|
||||
|
||||
setupActions ();
|
||||
@@ -408,9 +408,13 @@ void KateFileList::setSortType (int s)
|
||||
m_sort = s;
|
||||
if (m_sort == KateFileList::sortManual) {
|
||||
setSorting( -1, true );
|
||||
+ setDragEnabled(true);
|
||||
+ setAcceptDrops(true);
|
||||
}
|
||||
else {
|
||||
setSorting( 0, true );
|
||||
+ setDragEnabled(false);
|
||||
+ setAcceptDrops(false);
|
||||
updateSort ();
|
||||
}
|
||||
}
|
@ -1,167 +0,0 @@
|
||||
commit 46a657f7108284d4f02107d11fa407cbf95b86b9
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1337058308 -0500
|
||||
|
||||
Add the ability to reorder documents in kate
|
||||
|
||||
diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp
|
||||
index 8d34c38..bc5b0a1 100644
|
||||
--- a/kate/app/katefilelist.cpp
|
||||
+++ b/kate/app/katefilelist.cpp
|
||||
@@ -138,8 +138,14 @@ void KateFileList::setupActions ()
|
||||
windowPrev = KStdAction::forward(TQT_TQOBJECT(this), TQT_SLOT(slotNextDocument()), m_main->actionCollection());
|
||||
sortAction = new KSelectAction( i18n("Sort &By"), 0,
|
||||
m_main->actionCollection(), "filelist_sortby" );
|
||||
+ listMoveFileUp = new KAction( i18n("Move File Up"), 0, m_main->actionCollection(), "filelist_move_up" );
|
||||
+ listMoveFileUp->setShortcut(KShortcut(CTRL + SHIFT + Key_Comma));
|
||||
+ listMoveFileDown = new KAction( i18n("Move File Down"), 0, m_main->actionCollection(), "filelist_move_down" );
|
||||
+ listMoveFileDown->setShortcut(KShortcut(CTRL + SHIFT + Key_Period));
|
||||
+ connect( listMoveFileUp, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileUp()) );
|
||||
+ connect( listMoveFileDown, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileDown()) );
|
||||
TQStringList l;
|
||||
- l << i18n("Opening Order") << i18n("Document Name") << i18n("URL");
|
||||
+ l << i18n("Opening Order") << i18n("Document Name") << i18n("URL") << i18n("Manual Placement");
|
||||
sortAction->setItems( l );
|
||||
connect( sortAction, TQT_SIGNAL(activated(int)), TQT_TQOBJECT(this), TQT_SLOT(setSortType(int)) );
|
||||
}
|
||||
@@ -353,10 +359,25 @@ void KateFileList::slotMenu ( TQListViewItem *item, const TQPoint &p, int /*col*
|
||||
if (!item)
|
||||
return;
|
||||
|
||||
+ m_clickedMenuItem = item;
|
||||
+ if (m_clickedMenuItem->itemAbove()) {
|
||||
+ listMoveFileUp->setEnabled(true);
|
||||
+ }
|
||||
+ else {
|
||||
+ listMoveFileUp->setEnabled(false);
|
||||
+ }
|
||||
+ if (m_clickedMenuItem->itemBelow()) {
|
||||
+ listMoveFileDown->setEnabled(true);
|
||||
+ }
|
||||
+ else {
|
||||
+ listMoveFileDown->setEnabled(false);
|
||||
+ }
|
||||
+
|
||||
TQPopupMenu *menu = (TQPopupMenu*) ((viewManager->mainWindow())->factory()->container("filelist_popup", viewManager->mainWindow()));
|
||||
|
||||
- if (menu)
|
||||
+ if (menu) {
|
||||
menu->exec(p);
|
||||
+ }
|
||||
}
|
||||
|
||||
TQString KateFileList::tooltip( TQListViewItem *item, int )
|
||||
@@ -385,7 +406,45 @@ TQString KateFileList::tooltip( TQListViewItem *item, int )
|
||||
void KateFileList::setSortType (int s)
|
||||
{
|
||||
m_sort = s;
|
||||
- updateSort ();
|
||||
+ if (m_sort == KateFileList::sortManual) {
|
||||
+ setSorting( -1, true );
|
||||
+ }
|
||||
+ else {
|
||||
+ setSorting( 0, true );
|
||||
+ updateSort ();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void KateFileList::moveFileUp()
|
||||
+{
|
||||
+ if (m_clickedMenuItem) {
|
||||
+ sortAction->setCurrentItem(KateFileList::sortManual);
|
||||
+ setSortType(KateFileList::sortManual);
|
||||
+ TQListViewItem* nitemabove = m_clickedMenuItem->itemAbove();
|
||||
+ if (nitemabove) {
|
||||
+ nitemabove = nitemabove->itemAbove();
|
||||
+ if (nitemabove) {
|
||||
+ m_clickedMenuItem->moveItem(nitemabove);
|
||||
+ }
|
||||
+ else {
|
||||
+ // Qt made this hard
|
||||
+ nitemabove = m_clickedMenuItem->itemAbove();
|
||||
+ nitemabove->moveItem(m_clickedMenuItem);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void KateFileList::moveFileDown()
|
||||
+{
|
||||
+ if (m_clickedMenuItem) {
|
||||
+ sortAction->setCurrentItem(KateFileList::sortManual);
|
||||
+ setSortType(KateFileList::sortManual);
|
||||
+ TQListViewItem* nitemabove = m_clickedMenuItem->itemBelow();
|
||||
+ if (nitemabove) {
|
||||
+ m_clickedMenuItem->moveItem(nitemabove);
|
||||
+ }
|
||||
+ }
|
||||
}
|
||||
|
||||
void KateFileList::updateSort ()
|
||||
@@ -441,6 +500,11 @@ KateFileListItem::KateFileListItem( TQListView* lv,
|
||||
m_edithistpos( 0 ),
|
||||
m_docNumber( _doc->documentNumber() )
|
||||
{
|
||||
+ // Move this document to the end of the list where it belongs
|
||||
+ TQListViewItem* lastitem = lv->lastItem();
|
||||
+ if (lastitem) {
|
||||
+ moveItem(lastitem);
|
||||
+ }
|
||||
}
|
||||
|
||||
KateFileListItem::~KateFileListItem()
|
||||
diff --git a/kate/app/katefilelist.h b/kate/app/katefilelist.h
|
||||
index 176898c..e3504cb 100644
|
||||
--- a/kate/app/katefilelist.h
|
||||
+++ b/kate/app/katefilelist.h
|
||||
@@ -90,7 +90,8 @@ class KateFileList : public KListView
|
||||
enum sorting {
|
||||
sortByID = 0,
|
||||
sortByName = 1,
|
||||
- sortByURL = 2
|
||||
+ sortByURL = 2,
|
||||
+ sortManual = 3
|
||||
};
|
||||
|
||||
TQString tooltip( TQListViewItem *item, int );
|
||||
@@ -111,6 +112,8 @@ class KateFileList : public KListView
|
||||
|
||||
public slots:
|
||||
void setSortType (int s);
|
||||
+ void moveFileUp();
|
||||
+ void moveFileDown();
|
||||
void slotNextDocument();
|
||||
void slotPrevDocument();
|
||||
|
||||
@@ -151,6 +154,8 @@ class KateFileList : public KListView
|
||||
KAction* windowNext;
|
||||
KAction* windowPrev;
|
||||
KSelectAction* sortAction;
|
||||
+ KAction* listMoveFileUp;
|
||||
+ KAction* listMoveFileDown;
|
||||
|
||||
TQPtrList<KateFileListItem> m_viewHistory;
|
||||
TQPtrList<KateFileListItem> m_editHistory;
|
||||
@@ -158,6 +163,8 @@ class KateFileList : public KListView
|
||||
TQColor m_viewShade, m_editShade;
|
||||
bool m_enableBgShading;
|
||||
|
||||
+ TQListViewItem *m_clickedMenuItem;
|
||||
+
|
||||
class ToolTip *m_tooltip;
|
||||
};
|
||||
|
||||
diff --git a/kate/data/kateui.rc b/kate/data/kateui.rc
|
||||
index 27df006..6e784e9 100644
|
||||
--- a/kate/data/kateui.rc
|
||||
+++ b/kate/data/kateui.rc
|
||||
@@ -162,6 +162,9 @@
|
||||
<Action name="file_close"/>
|
||||
<Action name="file_close_all"/>
|
||||
<Separator/>
|
||||
+ <Action name="filelist_move_up"/>
|
||||
+ <Action name="filelist_move_down"/>
|
||||
+ <Separator/>
|
||||
<Action name="filelist_sortby"/>
|
||||
</Menu>
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,76 +0,0 @@
|
||||
commit 80deb52955cbd917e10f015f37699d830cb681ce
|
||||
Author: Slávek Banko <slavek.banko@axis.cz>
|
||||
Date: 1339336699 +0200
|
||||
|
||||
Add xscreensaver support to CMake
|
||||
This closes Bug 859
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index 31fb46c..3da5b2f 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -67,6 +67,7 @@
|
||||
option( WITH_XDAMAGE "Enable xdamage support" OFF )
|
||||
option( WITH_XEXT "Enable xext support" OFF )
|
||||
option( WITH_XTEST "Enable xext support" OFF )
|
||||
+option( WITH_XSCREENSAVER "Enable xscreensaver support" ${WITH_ALL_OPTIONS} )
|
||||
option( WITH_LIBUSB "Enable control of some mouse models through libusb" OFF )
|
||||
option( WITH_LIBRAW1394 "Enable visualization of ieee1394 devices through libraw1394" OFF )
|
||||
option( WITH_SUDO_KDESU_BACKEND "Use sudo as backend for kdesu (default is su)" OFF )
|
||||
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
|
||||
index ded1d00..1d9c83d 100644
|
||||
--- a/ConfigureChecks.cmake
|
||||
+++ b/ConfigureChecks.cmake
|
||||
@@ -144,6 +144,26 @@ if( WITH_XTEST )
|
||||
endif( )
|
||||
|
||||
|
||||
+# xscreensaver ()
|
||||
+if( WITH_XSCREENSAVER )
|
||||
+ check_library_exists( Xss XScreenSaverQueryInfo "" HAVE_XSSLIB )
|
||||
+ if( HAVE_XSSLIB )
|
||||
+ pkg_search_module( XSS xscrnsaver )
|
||||
+ else( )
|
||||
+ check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB )
|
||||
+ if( HAVE_XSSLIB )
|
||||
+ pkg_search_module( XSS xext )
|
||||
+ endif( )
|
||||
+ endif( )
|
||||
+ check_include_file( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H )
|
||||
+ if( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H )
|
||||
+ set( HAVE_XSCREENSAVER 1 )
|
||||
+ else( )
|
||||
+ tde_message_fatal( "xscreensaver is requested, but was not found on your system" )
|
||||
+ endif( )
|
||||
+endif( )
|
||||
+
|
||||
+
|
||||
# GL
|
||||
if( BUILD_KDESKTOP OR BUILD_KCONTROL OR BUILD_KSCREENSAVER )
|
||||
check_library_exists( GL glXChooseVisual "" HAVE_GLXCHOOSEVISUAL )
|
||||
diff --git a/config.h.cmake b/config.h.cmake
|
||||
index 39d6d85..772ca88 100644
|
||||
--- a/config.h.cmake
|
||||
+++ b/config.h.cmake
|
||||
@@ -21,6 +21,9 @@
|
||||
// kxkb
|
||||
#cmakedefine HAVE_XTEST 1
|
||||
|
||||
+// xscreensaver
|
||||
+#cmakedefine HAVE_XSCREENSAVER 1
|
||||
+
|
||||
// kdm, kioslave
|
||||
#cmakedefine HAVE_TERMIOS_H 1
|
||||
|
||||
diff --git a/kdesktop/CMakeLists.txt b/kdesktop/CMakeLists.txt
|
||||
index 99d86d1..b2e4628 100644
|
||||
--- a/kdesktop/CMakeLists.txt
|
||||
+++ b/kdesktop/CMakeLists.txt
|
||||
@@ -94,6 +94,7 @@ tde_add_tdeinit_executable( ${target} AUTOMOC
|
||||
kdesktopsettings-static bgnd-static dmctl-static
|
||||
konq-shared kutils-shared
|
||||
${XRENDER_LIBRARIES} ${XCURSOR_LIBRARIES} Xext dl
|
||||
+ ${XSS_LIBRARIES}
|
||||
)
|
||||
|
||||
|
@ -1,372 +0,0 @@
|
||||
commit 057932620ba8355a6506b9d437518e253ba14ed9
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1327619240 -0600
|
||||
|
||||
Clean up lock screen internals
|
||||
This cleanup is part of an effort to resolve Bug 810, but a new Qt3 version is required to fully resolve it
|
||||
|
||||
diff --git a/kdesktop/lock/autologout.cc b/kdesktop/lock/autologout.cc
|
||||
index 22b449c..bef39dd 100644
|
||||
--- a/kdesktop/lock/autologout.cc
|
||||
+++ b/kdesktop/lock/autologout.cc
|
||||
@@ -82,6 +82,8 @@ AutoLogout::AutoLogout(LockProcess *parent) : TQDialog(parent, "password dialog"
|
||||
mCountdownTimerId = startTimer(1000/25);
|
||||
|
||||
connect(tqApp, TQT_SIGNAL(activity()), TQT_SLOT(slotActivity()));
|
||||
+
|
||||
+ setFixedSize( sizeHint() );
|
||||
}
|
||||
|
||||
AutoLogout::~AutoLogout()
|
||||
diff --git a/kdesktop/lock/infodlg.cc b/kdesktop/lock/infodlg.cc
|
||||
index f5f35b9..3fbc276 100644
|
||||
--- a/kdesktop/lock/infodlg.cc
|
||||
+++ b/kdesktop/lock/infodlg.cc
|
||||
@@ -99,6 +99,7 @@ InfoDlg::InfoDlg(LockProcess *parent)
|
||||
frameLayout->addLayout( layStatus, 1, 1 );
|
||||
|
||||
installEventFilter(this);
|
||||
+ setFixedSize( sizeHint() );
|
||||
}
|
||||
|
||||
InfoDlg::~InfoDlg()
|
||||
diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
|
||||
index 0863a22..f3eeee0 100644
|
||||
--- a/kdesktop/lock/lockdlg.cc
|
||||
+++ b/kdesktop/lock/lockdlg.cc
|
||||
@@ -215,6 +215,7 @@ void PasswordDlg::init(GreeterPluginHandle *plugin)
|
||||
mNewSessButton->hide();
|
||||
|
||||
installEventFilter(this);
|
||||
+ setFixedSize( sizeHint() );
|
||||
|
||||
mFailedTimerId = 0;
|
||||
mTimeoutTimerId = startTimer(PASSDLG_HIDE_TIMEOUT);
|
||||
@@ -598,6 +599,7 @@ void PasswordDlg::show()
|
||||
{
|
||||
TQDialog::show();
|
||||
TQApplication::flushX();
|
||||
+ setFixedSize( sizeHint() );
|
||||
}
|
||||
|
||||
void PasswordDlg::slotStartNewSession()
|
||||
@@ -818,6 +820,8 @@ void PasswordDlg::slotSwitchUser()
|
||||
connect( btn, TQT_SIGNAL(clicked()), &dialog, TQT_SLOT(reject()) );
|
||||
vbox2->addWidget( btn );
|
||||
|
||||
+ dialog.setFixedSize( dialog.sizeHint() );
|
||||
+
|
||||
int ret = static_cast< LockProcess* >(parent())->execDialog( &dialog );
|
||||
if (ret != TQDialog::Rejected) {
|
||||
TQDialog::reject();
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 5acc96e..9648bbc 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -4,7 +4,7 @@
|
||||
//
|
||||
// Copyright (c) 1999 Martin R. Jones <mjones@kde.org>
|
||||
// Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
|
||||
-// Copyright (c) 2010-2011 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
+// Copyright (c) 2010-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
//
|
||||
|
||||
//kdesktop keeps running and checks user inactivity
|
||||
@@ -111,6 +111,10 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * );
|
||||
#define LOCK_GRACE_DEFAULT 5000
|
||||
#define AUTOLOGOUT_DEFAULT 600
|
||||
|
||||
+// FIXME
|
||||
+// This should be defined if Qt 3.4.0 or higher is in use
|
||||
+// #define KEEP_MOUSE_UNGRABBED 1
|
||||
+
|
||||
// These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys
|
||||
#define XF86XK_AudioMute 0x1008FF12
|
||||
#define XF86XK_AudioRaiseVolume 0x1008FF13
|
||||
@@ -183,6 +187,10 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
|
||||
mBackingStartupDelayTimer(0),
|
||||
m_startupStatusDialog(NULL)
|
||||
{
|
||||
+#ifdef KEEP_MOUSE_UNGRABBED
|
||||
+ setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize);
|
||||
+#endif
|
||||
+
|
||||
setupSignals();
|
||||
setupPipe();
|
||||
|
||||
@@ -267,7 +275,11 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
|
||||
#endif
|
||||
|
||||
#if (QT_VERSION-0 >= 0x030200) // XRANDR support
|
||||
- connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
|
||||
+ connect( kapp->desktop(), TQT_SIGNAL( resized( int )), TQT_SLOT( desktopResized()));
|
||||
+#endif
|
||||
+
|
||||
+#ifdef KEEP_MOUSE_UNGRABBED
|
||||
+ setEnabled(false);
|
||||
#endif
|
||||
|
||||
greetPlugin.library = 0;
|
||||
@@ -874,7 +886,6 @@ void LockProcess::createSaverWindow()
|
||||
// this is a security risk and has been deactivated--welcome to the 21st century folks!
|
||||
// setBackgroundMode(TQWidget::NoBackground);
|
||||
|
||||
- setCursor( tqblankCursor );
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
kdDebug(1204) << "Saver window Id: " << winId() << endl;
|
||||
@@ -884,7 +895,6 @@ void LockProcess::desktopResized()
|
||||
{
|
||||
mBusy = true;
|
||||
suspend();
|
||||
- setCursor( tqblankCursor );
|
||||
|
||||
// Get root window size
|
||||
XWindowAttributes rootAttr;
|
||||
@@ -1087,6 +1097,7 @@ bool LockProcess::grabInput()
|
||||
}
|
||||
}
|
||||
|
||||
+#ifndef KEEP_MOUSE_UNGRABBED
|
||||
if (!grabMouse())
|
||||
{
|
||||
usleep(100000);
|
||||
@@ -1096,6 +1107,7 @@ bool LockProcess::grabInput()
|
||||
return false;
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
|
||||
lockXF86();
|
||||
|
||||
@@ -1150,7 +1162,6 @@ bool LockProcess::startSaver()
|
||||
createSaverWindow();
|
||||
move(0, 0);
|
||||
show();
|
||||
- setCursor( tqblankCursor );
|
||||
|
||||
raise();
|
||||
XSync(qt_xdisplay(), False);
|
||||
@@ -1313,6 +1324,8 @@ void LockProcess::repaintRootWindowIfNeeded()
|
||||
|
||||
bool LockProcess::startHack()
|
||||
{
|
||||
+ setCursor( tqblankCursor );
|
||||
+
|
||||
if ((mEnsureVRootWindowSecurityTimer) && (!mEnsureVRootWindowSecurityTimer->isActive())) mEnsureVRootWindowSecurityTimer->start(250, FALSE);
|
||||
|
||||
if (currentDialog || (!mDialogs.isEmpty()))
|
||||
@@ -1429,6 +1442,7 @@ void LockProcess::stopHack()
|
||||
mHackProc.kill(SIGKILL);
|
||||
}
|
||||
}
|
||||
+ setCursor( tqarrowCursor );
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -1730,7 +1744,6 @@ void LockProcess::doFunctionKeyBroadcast() {
|
||||
mDialogControlLock = false;
|
||||
}
|
||||
}
|
||||
- setCursor( tqblankCursor );
|
||||
|
||||
DCOPRef ref( "*", "MainApplication-Interface");
|
||||
ref.send("sendFakeKey", DCOPArg(mkeyCode , "unsigned int"));
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index c0b8e24..0cbef60 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -45,8 +45,9 @@ bool trinity_desktop_lock_forced = FALSE;
|
||||
|
||||
bool MyApp::x11EventFilter( XEvent *ev )
|
||||
{
|
||||
- if (ev->type == XKeyPress || ev->type == ButtonPress)
|
||||
+ if (ev->type == XKeyPress || ev->type == ButtonPress) {
|
||||
emit activity();
|
||||
+ }
|
||||
else if (ev->type == MotionNotify) {
|
||||
time_t tick = time( 0 );
|
||||
if (tick != lastTick) {
|
||||
diff --git a/kdesktop/lock/querydlg.cc b/kdesktop/lock/querydlg.cc
|
||||
index e672d54..5f50cbe 100644
|
||||
--- a/kdesktop/lock/querydlg.cc
|
||||
+++ b/kdesktop/lock/querydlg.cc
|
||||
@@ -118,6 +118,7 @@ QueryDlg::QueryDlg(LockProcess *parent)
|
||||
connect(ok, TQT_SIGNAL(clicked()), TQT_SLOT(slotOK()));
|
||||
|
||||
installEventFilter(this);
|
||||
+ setFixedSize( sizeHint() );
|
||||
}
|
||||
|
||||
QueryDlg::~QueryDlg()
|
||||
diff --git a/kdesktop/lock/sakdlg.cc b/kdesktop/lock/sakdlg.cc
|
||||
index 17f54a1..d96e0af 100644
|
||||
--- a/kdesktop/lock/sakdlg.cc
|
||||
+++ b/kdesktop/lock/sakdlg.cc
|
||||
@@ -102,6 +102,7 @@ SAKDlg::SAKDlg(LockProcess *parent)
|
||||
mStatusLabel->setText("<b>" + i18n("Press Ctrl+Alt+Del to begin.") + "</b><p>" + i18n("This process helps keep your password secure.") + "<br>" + i18n("It prevents unauthorized users from emulating the login screen."));
|
||||
|
||||
installEventFilter(this);
|
||||
+ setFixedSize( sizeHint() );
|
||||
|
||||
mSAKProcess = new KProcess;
|
||||
*mSAKProcess << "kdmtsak";
|
||||
diff --git a/kdesktop/lock/securedlg.cc b/kdesktop/lock/securedlg.cc
|
||||
index 532b904..37524f7 100644
|
||||
--- a/kdesktop/lock/securedlg.cc
|
||||
+++ b/kdesktop/lock/securedlg.cc
|
||||
@@ -144,6 +144,7 @@ SecureDlg::SecureDlg(LockProcess *parent)
|
||||
mSwitchButton->setFixedWidth(btnSize);
|
||||
|
||||
installEventFilter(this);
|
||||
+ setFixedSize( sizeHint() );
|
||||
}
|
||||
|
||||
SecureDlg::~SecureDlg()
|
||||
commit 678bea5ba74b3b39981e482e188c61fdd37786f0
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1328606373 -0600
|
||||
|
||||
Allow minimal managed window interaction inside the lock process
|
||||
This closes Bug 810
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 9648bbc..2e9c9d3 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -111,8 +111,8 @@ Status DPMSInfo ( Display *, CARD16 *, BOOL * );
|
||||
#define LOCK_GRACE_DEFAULT 5000
|
||||
#define AUTOLOGOUT_DEFAULT 600
|
||||
|
||||
-// FIXME
|
||||
-// This should be defined if Qt 3.4.0 or higher is in use
|
||||
+// Setting this define is INSECURE
|
||||
+// Use it for debugging purposes ONLY
|
||||
// #define KEEP_MOUSE_UNGRABBED 1
|
||||
|
||||
// These lines are taken on 10/2009 from X.org (X11/XF86keysym.h), defining some special multimedia keys
|
||||
@@ -185,7 +185,12 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
|
||||
mHackStartupEnabled(true),
|
||||
m_rootPixmap(NULL),
|
||||
mBackingStartupDelayTimer(0),
|
||||
- m_startupStatusDialog(NULL)
|
||||
+ m_startupStatusDialog(NULL),
|
||||
+ m_mouseDown(0),
|
||||
+ m_mousePrevX(0),
|
||||
+ m_mousePrevY(0),
|
||||
+ m_dialogPrevX(0),
|
||||
+ m_dialogPrevY(0)
|
||||
{
|
||||
#ifdef KEEP_MOUSE_UNGRABBED
|
||||
setNFlags(WX11DisableMove|WX11DisableClose|WX11DisableShade|WX11DisableMinimize|WX11DisableMaximize);
|
||||
@@ -208,6 +213,8 @@ LockProcess::LockProcess(bool child, bool useBlankOnly)
|
||||
mEnsureVRootWindowSecurityTimer = new TQTimer( this );
|
||||
connect( mEnsureVRootWindowSecurityTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(repaintRootWindowIfNeeded()) );
|
||||
|
||||
+ connect(tqApp, TQT_SIGNAL(mouseInteraction(XEvent *)), TQT_SLOT(slotMouseActivity(XEvent *)));
|
||||
+
|
||||
mHackDelayStartupTimeout = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::timeout()*1000:10*1000;
|
||||
mHackStartupEnabled = trinity_desktop_lock_delay_screensaver_start?KDesktopSettings::screenSaverEnabled():true;
|
||||
|
||||
@@ -2200,4 +2207,64 @@ void LockProcess::sendVkbdFocusInOut( WId window, Time t )
|
||||
}
|
||||
}
|
||||
|
||||
+void LockProcess::slotMouseActivity(XEvent *event)
|
||||
+{
|
||||
+ bool inFrame = 0;
|
||||
+ bool inDialog = 0;
|
||||
+ XButtonEvent *be = (XButtonEvent *) event;
|
||||
+ XMotionEvent *me = (XMotionEvent *) event;
|
||||
+ if (event->type == ButtonPress) {
|
||||
+ // Get geometry including window frame/titlebar
|
||||
+ TQRect fgeom = mDialogs.first()->frameGeometry();
|
||||
+ TQRect wgeom = mDialogs.first()->geometry();
|
||||
+
|
||||
+ if (((be->x_root > fgeom.x()) && (be->y_root > fgeom.y())) && ((be->x_root < (fgeom.x()+fgeom.width())) && (be->y_root < (fgeom.y()+fgeom.height())))) {
|
||||
+ inFrame = 1;
|
||||
+ }
|
||||
+ if (((be->x_root > wgeom.x()) && (be->y_root > wgeom.y())) && ((be->x_root < (wgeom.x()+wgeom.width())) && (be->y_root < (wgeom.y()+wgeom.height())))) {
|
||||
+ inDialog = 1;
|
||||
+ }
|
||||
+
|
||||
+ // Clicked inside dialog; set focus
|
||||
+ if (inFrame == TRUE) {
|
||||
+ WId window = mDialogs.first()->winId();
|
||||
+ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime);
|
||||
+ fakeFocusIn(window);
|
||||
+ // Why this needs to be repeated I have no idea...
|
||||
+ XSetInputFocus(qt_xdisplay(), window, RevertToParent, CurrentTime);
|
||||
+ fakeFocusIn(window);
|
||||
+ }
|
||||
+
|
||||
+ // Clicked inside window handle (or border); drag window
|
||||
+ if ((inFrame == TRUE) && (inDialog == FALSE)) {
|
||||
+ TQPoint oldPoint = mDialogs.first()->pos();
|
||||
+ m_mouseDown = 1;
|
||||
+ m_dialogPrevX = oldPoint.x();
|
||||
+ m_dialogPrevY = oldPoint.y();
|
||||
+ m_mousePrevX = be->x_root;
|
||||
+ m_mousePrevY = be->y_root;
|
||||
+ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqsizeAllCursor).handle(), CurrentTime);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Drag the window...
|
||||
+ if (event->type == MotionNotify) {
|
||||
+ if (m_mouseDown == TRUE) {
|
||||
+ int deltaX = me->x_root - m_mousePrevX;
|
||||
+ int deltaY = me->y_root - m_mousePrevY;
|
||||
+ m_dialogPrevX = m_dialogPrevX + deltaX;
|
||||
+ m_dialogPrevY = m_dialogPrevY + deltaY;
|
||||
+ mDialogs.first()->move(m_dialogPrevX, m_dialogPrevY);
|
||||
+
|
||||
+ m_mousePrevX = me->x_root;
|
||||
+ m_mousePrevY = me->y_root;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (event->type == ButtonRelease) {
|
||||
+ m_mouseDown = 0;
|
||||
+ XChangeActivePointerGrab( qt_xdisplay(), GRABEVENTS, TQCursor(tqarrowCursor).handle(), CurrentTime);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
#include "lockprocess.moc"
|
||||
diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h
|
||||
index 3a7e3db..18320a8 100644
|
||||
--- a/kdesktop/lock/lockprocess.h
|
||||
+++ b/kdesktop/lock/lockprocess.h
|
||||
@@ -94,6 +94,7 @@ private slots:
|
||||
bool closeCurrentWindow();
|
||||
void repaintRootWindowIfNeeded();
|
||||
void startSecureDialog();
|
||||
+ void slotMouseActivity(XEvent *event);
|
||||
|
||||
private:
|
||||
void configure();
|
||||
@@ -197,6 +198,12 @@ private:
|
||||
KSMModalDialog* m_startupStatusDialog;
|
||||
|
||||
TQDateTime mlockDateTime;
|
||||
+
|
||||
+ bool m_mouseDown;
|
||||
+ int m_mousePrevX;
|
||||
+ int m_mousePrevY;
|
||||
+ int m_dialogPrevX;
|
||||
+ int m_dialogPrevY;
|
||||
};
|
||||
|
||||
#endif
|
||||
diff --git a/kdesktop/lock/main.h b/kdesktop/lock/main.h
|
||||
index c8e0e05..23797e4 100644
|
||||
--- a/kdesktop/lock/main.h
|
||||
+++ b/kdesktop/lock/main.h
|
||||
@@ -32,6 +32,7 @@ protected:
|
||||
bool x11EventFilter( XEvent * );
|
||||
signals:
|
||||
void activity();
|
||||
+ void mouseInteraction(XEvent *event);
|
||||
private:
|
||||
time_t lastTick;
|
||||
};
|
@ -1,22 +0,0 @@
|
||||
--- kdebase/kdm/backend/CMakeLists.txt.ORI 2012-09-06 22:17:30.134745111 +0200
|
||||
+++ kdebase/kdm/backend/CMakeLists.txt 2012-09-06 22:17:34.329664333 +0200
|
||||
@@ -37,7 +37,7 @@
|
||||
|
||||
tde_add_executable( kdm
|
||||
SOURCES
|
||||
- access.c auth.c bootman.c choose.c client.c consolekit.c
|
||||
+ access.c auth.c bootman.c choose.c client.c
|
||||
ctrl.c daemon.c dm.c dpylist.c error.c genauth.c
|
||||
inifile.c krb5auth.c mitauth.c netaddr.c policy.c
|
||||
process.c protodpy.c reset.c resource.c rpcauth.c
|
||||
--- kdebase/kdm/backend/dm.h.ORI 2012-09-06 17:33:31.284704186 -0400
|
||||
+++ kdebase/kdm/backend/dm.h 2012-09-06 17:33:40.415522219 -0400
|
||||
@@ -37,8 +37,6 @@
|
||||
#ifndef _DM_H_
|
||||
#define _DM_H_ 1
|
||||
|
||||
-#define WITH_CONSOLE_KIT
|
||||
-
|
||||
#include "greet.h"
|
||||
#include <config.ci>
|
||||
|
@ -1,97 +0,0 @@
|
||||
--- kdebase/kdm/backend/CMakeLists.txt.ORI 2012-09-06 22:11:08.422091268 +0200
|
||||
+++ kdebase/kdm/backend/CMakeLists.txt 2012-09-06 22:11:21.280843938 +0200
|
||||
@@ -14,11 +14,11 @@
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
##### kdm (executable) ##########################
|
||||
@@ -43,6 +43,6 @@
|
||||
process.c protodpy.c reset.c resource.c rpcauth.c
|
||||
server.c session.c sessreg.c socket.c streams.c
|
||||
util.c xdmauth.c xdmcp.c
|
||||
- LINK X11 ${XAU_LIBRARIES} ${DBUS_TQT_LIBRARIES} ${CRYPT_LIBRARY} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
+ LINK X11 ${XAU_LIBRARIES} ${DBUS_LIBRARIES} ${CRYPT_LIBRARY} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
--- kdebase/ksmserver/CMakeLists.txt.ORI 2012-09-06 17:22:59.990317001 -0400
|
||||
+++ kdebase/ksmserver/CMakeLists.txt 2012-09-06 17:23:16.340989494 -0400
|
||||
@@ -19,13 +19,13 @@
|
||||
${CMAKE_SOURCE_DIR}/kdmlib
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${HAL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
@@ -43,5 +43,5 @@
|
||||
main.cpp server.cpp shutdowndlg.cpp startupdlg.cpp
|
||||
legacy.cpp startup.cpp shutdown.cpp client.cpp
|
||||
KSMServerInterface.skel server.skel timed.ui
|
||||
- LINK dmctl-static kdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_TQT_LIBRARIES}
|
||||
+ LINK dmctl-static kdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_LIBRARIES}
|
||||
)
|
||||
--- kdebase/kioslave/media/mediamanager/CMakeLists.txt.ORI 2012-09-07 23:57:56.858227336 +0200
|
||||
+++ kdebase/kioslave/media/mediamanager/CMakeLists.txt 2012-09-07 23:58:54.948097583 +0200
|
||||
@@ -20,12 +20,12 @@
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${HAL_INCLUDE_DIRS}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
tde_add_kpart( ${target} AUTOMOC
|
||||
SOURCES ${${target}_SRCS}
|
||||
- LINK mediacommon-static kdeinit_kded-shared ${HAL_LIBRARIES} -lhal-storage ${DBUS_TQT_LIBRARIES}
|
||||
+ LINK mediacommon-static kdeinit_kded-shared ${HAL_LIBRARIES} -lhal-storage ${DBUS_LIBRARIES} -ldbus-qt-1
|
||||
DESTINATION ${PLUGIN_INSTALL_DIR}
|
||||
)
|
||||
else( )
|
||||
--- kdebase-3.5.13.1/ConfigureChecks.cmake.ORI 2012-10-08 22:57:40.751052066 +0200
|
||||
+++ kdebase-3.5.13.1/ConfigureChecks.cmake 2012-10-08 22:57:49.226885124 +0200
|
||||
@@ -254,19 +254,4 @@
|
||||
tde_message_fatal( "dbus-1 is required, but was not found on your system" )
|
||||
endif( )
|
||||
|
||||
- # check for dbus-tqt
|
||||
- pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
|
||||
- tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
|
||||
- set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
|
||||
- check_cxx_source_compiles("
|
||||
- #include <tqt.h>
|
||||
- #include <dbus/connection.h>
|
||||
- int main(int, char**) { return 0; } "
|
||||
- HAVE_DBUS_QT3_07 )
|
||||
- tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- if( NOT HAVE_DBUS_QT3_07 )
|
||||
- tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
|
||||
- endif( )
|
||||
-
|
||||
endif( )
|
@ -1,22 +0,0 @@
|
||||
commit 9a948c1af9c07bfdc0eb079cc3cbc84e6bd597c6
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1337062714 -0500
|
||||
|
||||
Disable keyboard shortcuts for file location moving, as they did not work properly and have very little practical use
|
||||
|
||||
diff --git a/kate/app/katefilelist.cpp b/kate/app/katefilelist.cpp
|
||||
index bd2d087..d2214a4 100644
|
||||
--- a/kate/app/katefilelist.cpp
|
||||
+++ b/kate/app/katefilelist.cpp
|
||||
@@ -139,9 +139,9 @@ void KateFileList::setupActions ()
|
||||
sortAction = new KSelectAction( i18n("Sort &By"), 0,
|
||||
m_main->actionCollection(), "filelist_sortby" );
|
||||
listMoveFileUp = new KAction( i18n("Move File Up"), 0, m_main->actionCollection(), "filelist_move_up" );
|
||||
- listMoveFileUp->setShortcut(KShortcut(CTRL + SHIFT + Key_Comma));
|
||||
+ //listMoveFileUp->setShortcut(KShortcut(CTRL + SHIFT + Key_Comma));
|
||||
listMoveFileDown = new KAction( i18n("Move File Down"), 0, m_main->actionCollection(), "filelist_move_down" );
|
||||
- listMoveFileDown->setShortcut(KShortcut(CTRL + SHIFT + Key_Period));
|
||||
+ //listMoveFileDown->setShortcut(KShortcut(CTRL + SHIFT + Key_Period));
|
||||
connect( listMoveFileUp, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileUp()) );
|
||||
connect( listMoveFileDown, TQT_SIGNAL(activated()), TQT_TQOBJECT(this), TQT_SLOT(moveFileDown()) );
|
||||
TQStringList l;
|
@ -1,50 +0,0 @@
|
||||
--- kdebase/config.h.cmake.ORI 2012-08-20 11:19:03.411461759 +0200
|
||||
+++ kdebase/config.h.cmake 2012-08-20 11:19:40.587461736 +0200
|
||||
@@ -174,3 +174,6 @@
|
||||
|
||||
// kdm, kcontrol
|
||||
#cmakedefine WITH_XRANDR "@WITH_XRANDR@"
|
||||
+
|
||||
+// tsak
|
||||
+#cmakedefine BUILD_TSAK "@BUILD_TSAK@"
|
||||
--- kdebase/kdesktop/lock/main.cc.tsak 2012-08-20 13:55:47.265335687 +0200
|
||||
+++ kdebase/kdesktop/lock/main.cc 2012-08-20 13:56:31.594856008 +0200
|
||||
@@ -207,8 +207,11 @@
|
||||
struct stat st;
|
||||
KSimpleConfig* tdmconfig;
|
||||
OPEN_TDMCONFIG_AND_SET_GROUP
|
||||
+#ifdef BUILD_TSAK
|
||||
trinity_desktop_lock_use_sak = tdmconfig->readBoolEntry("UseSAK", true);
|
||||
-
|
||||
+#else
|
||||
+ trinity_desktop_lock_use_sak = false;
|
||||
+#endif
|
||||
LockProcess process;
|
||||
|
||||
// Start loading core functions, such as the desktop wallpaper interface
|
||||
@@ -272,7 +275,11 @@
|
||||
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", true);
|
||||
+#else
|
||||
+ 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
|
||||
--- kdebase/kdm/kfrontend/kgapp.cpp.tsak 2012-08-20 14:00:44.387336567 +0200
|
||||
+++ kdebase/kdm/kfrontend/kgapp.cpp 2012-08-20 14:01:26.280461134 +0200
|
||||
@@ -195,7 +195,11 @@
|
||||
KProcess *dcop = 0;
|
||||
KProcess *kwin = 0;
|
||||
|
||||
+#ifdef BUILD_TSAK
|
||||
trinity_desktop_lock_use_sak = _useSAK;
|
||||
+#else
|
||||
+ trinity_desktop_lock_use_sak = false;
|
||||
+#endif
|
||||
if (trinity_desktop_lock_use_sak) {
|
||||
tsak = new KProcess;
|
||||
*tsak << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + "tsak";
|
@ -1,37 +0,0 @@
|
||||
--- kdebase/ConfigureChecks.cmake.afterlibdetect.ORI 2012-09-06 20:46:34.705339175 +0200
|
||||
+++ kdebase/ConfigureChecks.cmake 2012-09-06 20:47:12.331548001 +0200
|
||||
@@ -229,19 +229,21 @@
|
||||
tde_message_fatal( "dbus-1 is required, but was not found on your system" )
|
||||
endif( )
|
||||
|
||||
- # check for dbus-tqt
|
||||
- pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
|
||||
- tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
|
||||
- set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
|
||||
- check_cxx_source_compiles("
|
||||
- #include <tqt.h>
|
||||
- #include <dbus/connection.h>
|
||||
- int main(int, char**) { return 0; } "
|
||||
- HAVE_DBUS_QT3_07 )
|
||||
- tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- if( NOT HAVE_DBUS_QT3_07 )
|
||||
- tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
|
||||
+ if( BUILD_TSAK )
|
||||
+ # check for dbus-tqt
|
||||
+ pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
|
||||
+ tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
+ set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
|
||||
+ set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
|
||||
+ check_cxx_source_compiles("
|
||||
+ #include <tqt.h>
|
||||
+ #include <dbus/connection.h>
|
||||
+ int main(int, char**) { return 0; } "
|
||||
+ HAVE_DBUS_QT3_07 )
|
||||
+ tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
+ if( NOT HAVE_DBUS_QT3_07 )
|
||||
+ tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
|
||||
+ endif( )
|
||||
endif( )
|
||||
|
||||
endif( )
|
@ -1,135 +0,0 @@
|
||||
commit 45fb5561be6e828c78180c781f74d0ae9d1c3ea4
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1326230757 -0600
|
||||
|
||||
Enable xtest support flag
|
||||
|
||||
diff --git a/CMakeLists.txt b/CMakeLists.txt
|
||||
index b832a92..f4d11ac 100644
|
||||
--- a/CMakeLists.txt
|
||||
+++ b/CMakeLists.txt
|
||||
@@ -65,6 +65,7 @@ option( WITH_XRANDR "Enable xrandr support" OFF )
|
||||
option( WITH_XRENDER "Enable xrender support" OFF )
|
||||
option( WITH_XDAMAGE "Enable xdamage support" OFF )
|
||||
option( WITH_XEXT "Enable xext support" OFF )
|
||||
+option( WITH_XTEST "Enable xext support" OFF )
|
||||
option( WITH_LIBUSB "Enable control of some mouse models through libusb" OFF )
|
||||
option( WITH_LIBRAW1394 "Enable visualization of ieee1394 devices through libraw1394" OFF )
|
||||
option( WITH_SUDO_KDESU_BACKEND "Use sudo as backend for kdesu (default is su)" OFF )
|
||||
diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake
|
||||
index 7b7a1b4..df892e1 100644
|
||||
--- a/ConfigureChecks.cmake
|
||||
+++ b/ConfigureChecks.cmake
|
||||
@@ -100,12 +100,25 @@ endif( )
|
||||
# xext (kwin/kompmgr)
|
||||
if( WITH_XEXT )
|
||||
pkg_search_module( XEXT xext )
|
||||
- if( NOT XEXT_FOUND )
|
||||
+ if( XEXT_FOUND )
|
||||
+ set( HAVE_XEXT 1 )
|
||||
+ else( XEXT_FOUND )
|
||||
tde_message_fatal( "xext is requested, but was not found on your system" )
|
||||
endif( )
|
||||
endif( )
|
||||
|
||||
|
||||
+# xtest (kxkb)
|
||||
+if( WITH_XTEST )
|
||||
+ pkg_search_module( XTEST xtst )
|
||||
+ if( XTEST_FOUND )
|
||||
+ set( HAVE_XTEST 1 )
|
||||
+ else( XTEST_FOUND )
|
||||
+ tde_message_fatal( "xtest is requested, but was not found on your system" )
|
||||
+ endif( )
|
||||
+endif( )
|
||||
+
|
||||
+
|
||||
# GL
|
||||
if( BUILD_KDESKTOP OR BUILD_KCONTROL OR BUILD_KSCREENSAVER )
|
||||
check_library_exists( GL glXChooseVisual "" HAVE_GLXCHOOSEVISUAL )
|
||||
diff --git a/config.h.cmake b/config.h.cmake
|
||||
index d72a96c..a8de2fa 100644
|
||||
--- a/config.h.cmake
|
||||
+++ b/config.h.cmake
|
||||
@@ -18,6 +18,9 @@
|
||||
// konsole, kdm, kxkb
|
||||
#cmakedefine HAVE_XKB 1
|
||||
|
||||
+// kxkb
|
||||
+#cmakedefine HAVE_XTEST 1
|
||||
+
|
||||
// kdm, kioslave
|
||||
#cmakedefine HAVE_TERMIOS_H 1
|
||||
|
||||
diff --git a/kxkb/CMakeLists.txt b/kxkb/CMakeLists.txt
|
||||
index 703591a..f36a003 100644
|
||||
--- a/kxkb/CMakeLists.txt
|
||||
+++ b/kxkb/CMakeLists.txt
|
||||
@@ -22,6 +22,7 @@ include_directories(
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
+ ${XTEST_LIBDIR}
|
||||
)
|
||||
|
||||
|
||||
@@ -39,7 +40,7 @@ tde_add_kpart( kcm_keyboard AUTOMOC
|
||||
extension.cpp x11helper.cpp rules.cpp kxkbconfig.cpp
|
||||
pixmap.cpp kcmlayout.cpp kcmlayoutwidget.ui
|
||||
kcmmisc.cpp kcmmiscwidget.ui
|
||||
- LINK kio-shared xkbfile
|
||||
+ LINK kio-shared xkbfile ${XTEST_LIBRARIES}
|
||||
DESTINATION ${PLUGIN_INSTALL_DIR}
|
||||
)
|
||||
|
||||
diff --git a/kxkb/kcmmisc.cpp b/kxkb/kcmmisc.cpp
|
||||
index b4c18a4..8850d89 100644
|
||||
--- a/kxkb/kcmmisc.cpp
|
||||
+++ b/kxkb/kcmmisc.cpp
|
||||
@@ -344,6 +344,21 @@ int xkb_set_off()
|
||||
return 1;
|
||||
}
|
||||
|
||||
+int xkb_state()
|
||||
+ {
|
||||
+ unsigned int mask;
|
||||
+ unsigned int numlockState;
|
||||
+ XkbStateRec xkbState;
|
||||
+ if( !xkb_init())
|
||||
+ return 0;
|
||||
+ mask = xkb_numlock_mask();
|
||||
+ if( mask == 0 )
|
||||
+ return 0;
|
||||
+ XkbGetState( dpy, XkbUseCoreKbd, &xkbState);
|
||||
+ numlockState = xkbState.locked_mods & mask;
|
||||
+ return numlockState;
|
||||
+ }
|
||||
+
|
||||
int xkb_toggle()
|
||||
{
|
||||
unsigned int mask;
|
||||
@@ -443,7 +458,14 @@ void numlock_toggle()
|
||||
return;
|
||||
#endif
|
||||
#ifdef HAVE_XTEST
|
||||
+#ifdef HAVE_XKB
|
||||
+ if (xkb_state())
|
||||
+ xtest_set_on();
|
||||
+ else
|
||||
+ xtest_set_off();
|
||||
+#else // HAVE_XKB
|
||||
xtest_toggle();
|
||||
+#endif // HAVE_XKB
|
||||
#endif
|
||||
}
|
||||
// This code is taken from xset utility from XFree 4.3 (http://www.xfree86.org/)
|
||||
--- kdebase/khotkeys/shared/CMakeLists.txt.ORI 2012-01-14 21:49:34.423813010 +0100
|
||||
+++ kdebase/khotkeys/shared/CMakeLists.txt 2012-01-14 21:53:23.915008098 +0100
|
||||
@@ -36,6 +36,6 @@
|
||||
tde_add_library( ${target} SHARED AUTOMOC
|
||||
SOURCES ${${target}_SRCS}
|
||||
VERSION 1.0.0
|
||||
- LINK kio-shared
|
||||
+ LINK kio-shared ${XTEST_LIBRARIES}
|
||||
DESTINATION ${LIB_INSTALL_DIR}
|
||||
)
|
@ -1,252 +0,0 @@
|
||||
commit 8d521d0b6ba88c6e679e7453f02897c8db7bbdf5
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1328671935 -0600
|
||||
|
||||
Update lock process to engage the lock in near real time
|
||||
|
||||
diff --git a/kdesktop/lock/CMakeLists.txt b/kdesktop/lock/CMakeLists.txt
|
||||
index 5530d4c..7a35121 100644
|
||||
--- a/kdesktop/lock/CMakeLists.txt
|
||||
+++ b/kdesktop/lock/CMakeLists.txt
|
||||
@@ -35,6 +35,6 @@ set( ${target}_SRCS
|
||||
|
||||
tde_add_executable( ${target} AUTOMOC
|
||||
SOURCES ${${target}_SRCS}
|
||||
- LINK kdesktopsettings-static dmctl-static kio-shared Xext ${GL_LIBRARY}
|
||||
+ LINK kdesktopsettings-static dmctl-static kio-shared Xext ${GL_LIBRARY} "-z\ now"
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 0cbef60..132ff30 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -1,6 +1,7 @@
|
||||
/* This file is part of the KDE project
|
||||
Copyright (C) 1999 David Faure
|
||||
Copyright (c) 2003 Oswald Buddenhagen <ossi@kde.org>
|
||||
+ Copyright (c) 2010-2012 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
|
||||
@@ -43,6 +44,13 @@ bool trinity_desktop_lock_use_sak = FALSE;
|
||||
|
||||
bool trinity_desktop_lock_forced = FALSE;
|
||||
|
||||
+bool signalled_forcelock;
|
||||
+bool signalled_dontlock;
|
||||
+bool signalled_securedialog;
|
||||
+bool signalled_blank;
|
||||
+bool signalled_run;
|
||||
+bool in_internal_mode = FALSE;
|
||||
+
|
||||
bool MyApp::x11EventFilter( XEvent *ev )
|
||||
{
|
||||
if (ev->type == XKeyPress || ev->type == ButtonPress) {
|
||||
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
|
||||
index 5307c5c..79d27db 100644
|
||||
--- a/kdesktop/lockeng.cc
|
||||
+++ b/kdesktop/lockeng.cc
|
||||
@@ -1,8 +1,9 @@
|
||||
//===========================================================================
|
||||
//
|
||||
-// 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) 2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
//
|
||||
|
||||
|
||||
@@ -29,6 +30,14 @@ extern xautolock_corner_t xautolock_corners[ 4 ];
|
||||
|
||||
bool trinity_lockeng_sak_available = TRUE;
|
||||
|
||||
+SaverEngine* m_masterSaverEngine = NULL;
|
||||
+static void sigusr1_handler(int)
|
||||
+{
|
||||
+ if (m_masterSaverEngine) {
|
||||
+ m_masterSaverEngine->lockProcessWaiting();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
//===========================================================================
|
||||
//
|
||||
// Screen saver engine. Doesn't handle the actual screensaver window,
|
||||
@@ -42,6 +51,16 @@ SaverEngine::SaverEngine()
|
||||
mSAKProcess(NULL),
|
||||
mTerminationRequested(false)
|
||||
{
|
||||
+ struct sigaction act;
|
||||
+
|
||||
+ // handle SIGUSR1
|
||||
+ m_masterSaverEngine = this;
|
||||
+ act.sa_handler= sigusr1_handler;
|
||||
+ sigemptyset(&(act.sa_mask));
|
||||
+ sigaddset(&(act.sa_mask), SIGUSR1);
|
||||
+ act.sa_flags = 0;
|
||||
+ sigaction(SIGUSR1, &act, 0L);
|
||||
+
|
||||
// Save X screensaver parameters
|
||||
XGetScreenSaver(qt_xdisplay(), &mXTimeout, &mXInterval,
|
||||
&mXBlanking, &mXExposures);
|
||||
@@ -60,6 +79,19 @@ SaverEngine::SaverEngine()
|
||||
TQTimer::singleShot( 0, this, TQT_SLOT(handleSecureDialog()) );
|
||||
|
||||
configure();
|
||||
+
|
||||
+ mLockProcess.clearArguments();
|
||||
+ TQString path = KStandardDirs::findExe( "kdesktop_lock" );
|
||||
+ if( path.isEmpty())
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl;
|
||||
+ }
|
||||
+ mLockProcess << path;
|
||||
+ mLockProcess << TQString( "--internal" ) << TQString( "%1" ).arg(getpid());
|
||||
+ if (mLockProcess.start() == false )
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl;
|
||||
+ }
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
@@ -68,6 +100,10 @@ SaverEngine::SaverEngine()
|
||||
//
|
||||
SaverEngine::~SaverEngine()
|
||||
{
|
||||
+ if (mState == Waiting) {
|
||||
+ kill(mLockProcess.pid(), SIGKILL);
|
||||
+ }
|
||||
+
|
||||
mLockProcess.detach(); // don't kill it if we crash
|
||||
delete mXAutoLock;
|
||||
|
||||
@@ -86,9 +122,9 @@ void SaverEngine::lock()
|
||||
{
|
||||
mSAKProcess->kill(SIGTERM);
|
||||
ok = startLockProcess( ForceLock );
|
||||
-// It takes a while for kdesktop_lock to start and lock the screen.
|
||||
-// Therefore delay the DCOP call until it tells kdesktop that the locking is in effect.
|
||||
-// This is done only for --forcelock .
|
||||
+ // It takes a while for kdesktop_lock to start and lock the screen.
|
||||
+ // Therefore delay the DCOP call until it tells kdesktop that the locking is in effect.
|
||||
+ // This is done only for --forcelock .
|
||||
if( ok && mState != Saving )
|
||||
{
|
||||
DCOPClientTransaction* trans = kapp->dcopClient()->beginTransaction();
|
||||
@@ -283,40 +319,42 @@ bool SaverEngine::startLockProcess( LockType lock_type )
|
||||
kdDebug(1204) << "SaverEngine: starting saver" << endl;
|
||||
emitDCOPSignal("KDE_start_screensaver()", TQByteArray());
|
||||
|
||||
- if (mLockProcess.isRunning())
|
||||
- {
|
||||
- stopLockProcess();
|
||||
- }
|
||||
- mLockProcess.clearArguments();
|
||||
- TQString path = KStandardDirs::findExe( "kdesktop_lock" );
|
||||
- if( path.isEmpty())
|
||||
- {
|
||||
- kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl;
|
||||
- return false;
|
||||
+ if (!mLockProcess.isRunning()) {
|
||||
+ mLockProcess.clearArguments();
|
||||
+ TQString path = KStandardDirs::findExe( "kdesktop_lock" );
|
||||
+ if( path.isEmpty())
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl;
|
||||
+ return false;
|
||||
+ }
|
||||
+ mLockProcess << path;
|
||||
+ mLockProcess << TQString( "--internal" ) << TQString( "%1" ).arg(getpid());
|
||||
+ if (mLockProcess.start() == false )
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl;
|
||||
+ return false;
|
||||
+ }
|
||||
}
|
||||
- mLockProcess << path;
|
||||
+
|
||||
switch( lock_type )
|
||||
{
|
||||
case ForceLock:
|
||||
- mLockProcess << TQString( "--forcelock" );
|
||||
+ mLockProcess.kill(SIGUSR1); // Request forcelock
|
||||
break;
|
||||
case DontLock:
|
||||
- mLockProcess << TQString( "--dontlock" );
|
||||
+ mLockProcess.kill(SIGUSR2); // Request dontlock
|
||||
break;
|
||||
case SecureDialog:
|
||||
- mLockProcess << TQString( "--securedialog" );
|
||||
+ mLockProcess.kill(SIGWINCH); // Request secure dialog
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
- if (mBlankOnly)
|
||||
- mLockProcess << TQString( "--blank" );
|
||||
-
|
||||
- if (mLockProcess.start() == false )
|
||||
- {
|
||||
- kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl;
|
||||
- return false;
|
||||
+ if (mBlankOnly) {
|
||||
+ mLockProcess.kill(SIGTTIN); // Request blanking
|
||||
}
|
||||
+
|
||||
+ mLockProcess.kill(SIGTTOU); // Start lock
|
||||
XSetScreenSaver(qt_xdisplay(), 0, mXInterval, PreferBlanking, mXExposures);
|
||||
|
||||
mState = Preparing;
|
||||
@@ -359,9 +397,7 @@ void SaverEngine::stopLockProcess()
|
||||
|
||||
void SaverEngine::lockProcessExited()
|
||||
{
|
||||
-printf("Lock process exited\n\r"); fflush(stdout);
|
||||
bool abnormalExit = false;
|
||||
- kdDebug(1204) << "SaverEngine: lock exited" << endl;
|
||||
if (mLockProcess.normalExit() == false) {
|
||||
abnormalExit = true;
|
||||
}
|
||||
@@ -387,6 +423,28 @@ printf("Lock process exited\n\r"); fflush(stdout);
|
||||
system("logout");
|
||||
}
|
||||
}
|
||||
+ else {
|
||||
+ // Restart the lock process
|
||||
+ if (!mLockProcess.isRunning()) {
|
||||
+ mLockProcess.clearArguments();
|
||||
+ TQString path = KStandardDirs::findExe( "kdesktop_lock" );
|
||||
+ if( path.isEmpty())
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Can't find kdesktop_lock!" << endl;
|
||||
+ }
|
||||
+ mLockProcess << path;
|
||||
+ mLockProcess << TQString( "--internal" ) << TQString( "%1" ).arg(getpid());
|
||||
+ if (mLockProcess.start() == false )
|
||||
+ {
|
||||
+ kdDebug( 1204 ) << "Failed to start kdesktop_lock!" << endl;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void SaverEngine::lockProcessWaiting()
|
||||
+{
|
||||
+ kdDebug(1204) << "SaverEngine: lock exited" << endl;
|
||||
if (trinity_lockeng_sak_available == TRUE) {
|
||||
handleSecureDialog();
|
||||
}
|
||||
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
|
||||
index ae81f90..ae08e9a 100644
|
||||
--- a/kdesktop/lockeng.h
|
||||
+++ b/kdesktop/lockeng.h
|
||||
@@ -78,6 +78,9 @@ public:
|
||||
*/
|
||||
virtual void saverLockReady();
|
||||
|
||||
+public slots:
|
||||
+ void lockProcessWaiting();
|
||||
+
|
||||
protected slots:
|
||||
void idleTimeout();
|
||||
void lockProcessExited();
|
@ -1,356 +0,0 @@
|
||||
commit 4952641328f28a541e3fdf2200df4e1e4b11d5dd
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1328994151 -0600
|
||||
|
||||
Commit the rest of 8d521d0b, not merged due to GIT glitch
|
||||
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 132ff30..4edd1b3 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -73,140 +73,241 @@ static KCmdLineOptions options[] =
|
||||
{ "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 },
|
||||
KCmdLineLastOption
|
||||
};
|
||||
|
||||
+static void sigusr1_handler(int)
|
||||
+{
|
||||
+ signalled_forcelock = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void sigusr2_handler(int)
|
||||
+{
|
||||
+ signalled_dontlock = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void sigusr3_handler(int)
|
||||
+{
|
||||
+ signalled_securedialog = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void sigusr4_handler(int)
|
||||
+{
|
||||
+ signalled_blank = TRUE;
|
||||
+}
|
||||
+
|
||||
+static void sigusr5_handler(int)
|
||||
+{
|
||||
+ signalled_run = TRUE;
|
||||
+}
|
||||
+
|
||||
// -----------------------------------------------------------------------------
|
||||
|
||||
int main( int argc, char **argv )
|
||||
{
|
||||
KLocale::setMainCatalogue("kdesktop");
|
||||
|
||||
- KCmdLineArgs::init( argc, argv, "kdesktop_lock", I18N_NOOP("KDesktop Locker"), I18N_NOOP("Session Locker for KDesktop"), "2.0" );
|
||||
+ KCmdLineArgs::init( argc, argv, "kdesktop_lock", I18N_NOOP("KDesktop Locker"), I18N_NOOP("Session Locker for KDesktop"), "2.1" );
|
||||
KCmdLineArgs::addCmdLineOptions( options );
|
||||
KCmdLineArgs *args = KCmdLineArgs::parsedArgs();
|
||||
|
||||
- if (args->isSet( "forcelock" ))
|
||||
- trinity_desktop_lock_forced = TRUE;
|
||||
-
|
||||
putenv(strdup("SESSION_MANAGER="));
|
||||
|
||||
KApplication::disableAutoDcopRegistration(); // not needed
|
||||
|
||||
- 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 (KGlobalSettings::isMultiHead())
|
||||
- {
|
||||
- Display *dpy = XOpenDisplay(NULL);
|
||||
- if (! dpy) {
|
||||
- fprintf(stderr,
|
||||
- "%s: FATAL ERROR: couldn't open display '%s'\n",
|
||||
- argv[0], XDisplayName(NULL));
|
||||
- exit(1);
|
||||
- }
|
||||
+ while (1 == 1) {
|
||||
+ signalled_forcelock = FALSE;
|
||||
+ signalled_dontlock = FALSE;
|
||||
+ signalled_securedialog = FALSE;
|
||||
+ signalled_blank = FALSE;
|
||||
+ signalled_run = FALSE;
|
||||
|
||||
- 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]);
|
||||
+ 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 (KGlobalSettings::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;
|
||||
+ 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 (putenv(strdup(env.data()))) {
|
||||
+ fprintf(stderr,
|
||||
+ "%s: WARNING: unable to set DISPLAY environment variable\n",
|
||||
+ argv[0]);
|
||||
+ perror("putenv()");
|
||||
+ }
|
||||
}
|
||||
}
|
||||
- }
|
||||
|
||||
- MyApp app;
|
||||
- kdDebug() << "app " << kdesktop_screen_number << " " << starting_screen << " " << child << " " << child_sockets.count() << " " << parent_connection << endl;
|
||||
- app.disableSessionManagement();
|
||||
- KGlobal::locale()->insertCatalogue("libdmctl");
|
||||
-
|
||||
- // we need to read from the right rc file - possibly taking screen number in account
|
||||
- KDesktopSettings::instance("kdesktoprc");
|
||||
-
|
||||
- trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows();
|
||||
- trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart();
|
||||
- trinity_desktop_lock_use_sak = KDesktopSettings::useTDESAK();
|
||||
-
|
||||
- LockProcess process(child, args->isSet( "blank" ));
|
||||
- if (!child)
|
||||
- process.setChildren(child_sockets);
|
||||
- else
|
||||
- process.setParent(parent_connection);
|
||||
-
|
||||
- bool rt;
|
||||
- bool sig = false;
|
||||
- if( !child && args->isSet( "forcelock" ))
|
||||
- {
|
||||
- rt = process.lock();
|
||||
- sig = true;
|
||||
- }
|
||||
- else if( child || args->isSet( "dontlock" )) {
|
||||
- rt = process.dontLock();
|
||||
- }
|
||||
- else if( child || args->isSet( "securedialog" )) {
|
||||
- int retcode = tde_sak_verify_calling_process();
|
||||
- if (retcode == 0) {
|
||||
- rt = process.runSecureDialog();
|
||||
+ MyApp app;
|
||||
+ kdDebug() << "app " << kdesktop_screen_number << " " << starting_screen << " " << child << " " << child_sockets.count() << " " << parent_connection << endl;
|
||||
+ app.disableSessionManagement();
|
||||
+ KGlobal::locale()->insertCatalogue("libdmctl");
|
||||
+
|
||||
+ // we need to read from the right rc file - possibly taking screen number in account
|
||||
+ KDesktopSettings::instance("kdesktoprc");
|
||||
+
|
||||
+ trinity_desktop_lock_use_system_modal_dialogs = !KDesktopSettings::useUnmanagedLockWindows();
|
||||
+ trinity_desktop_lock_delay_screensaver_start = KDesktopSettings::delaySaverStart();
|
||||
+ trinity_desktop_lock_use_sak = KDesktopSettings::useTDESAK();
|
||||
+
|
||||
+ if (args->isSet( "internal" )) {
|
||||
+ while (signalled_run == FALSE) {
|
||||
+ sigset_t new_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
|
||||
+ sigfillset(&new_mask);
|
||||
+ sigdelset(&new_mask,SIGUSR1);
|
||||
+ sigdelset(&new_mask,SIGUSR2);
|
||||
+ sigdelset(&new_mask,SIGWINCH);
|
||||
+ sigdelset(&new_mask,SIGTTIN);
|
||||
+ sigdelset(&new_mask,SIGTTOU);
|
||||
+
|
||||
+ // wait for SIGUSR1, SIGUSR2, SIGWINCH, SIGTTIN, or SIGTTOU
|
||||
+ sigsuspend(&new_mask);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE))
|
||||
+ trinity_desktop_lock_forced = TRUE;
|
||||
+
|
||||
+ LockProcess process(child, (args->isSet( "blank" ) || (signalled_blank == TRUE)));
|
||||
+ if (!child)
|
||||
+ process.setChildren(child_sockets);
|
||||
+ else
|
||||
+ process.setParent(parent_connection);
|
||||
+
|
||||
+ bool rt;
|
||||
+ bool sig = false;
|
||||
+ if( !child && (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE)))
|
||||
+ {
|
||||
+ rt = process.lock();
|
||||
+ sig = true;
|
||||
+ }
|
||||
+ else if( child || (args->isSet( "dontlock" ) || (signalled_dontlock == TRUE))) {
|
||||
+ rt = process.dontLock();
|
||||
+ }
|
||||
+ else if( child || (args->isSet( "securedialog" ) || (signalled_securedialog == TRUE))) {
|
||||
+ int retcode = tde_sak_verify_calling_process();
|
||||
+ if (retcode == 0) {
|
||||
+ rt = process.runSecureDialog();
|
||||
+ }
|
||||
+ else {
|
||||
+ return 1;
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
+ rt = process.defaultSave();
|
||||
+ }
|
||||
+ if (!rt) {
|
||||
return 0;
|
||||
}
|
||||
- }
|
||||
- else {
|
||||
- rt = process.defaultSave();
|
||||
- }
|
||||
- if (!rt) {
|
||||
- return 0;
|
||||
- }
|
||||
|
||||
- if( sig )
|
||||
- {
|
||||
- DCOPRef ref( "kdesktop", "KScreensaverIface");
|
||||
- ref.send( "saverLockReady" );
|
||||
- }
|
||||
+ if( sig )
|
||||
+ {
|
||||
+ DCOPRef ref( "kdesktop", "KScreensaverIface");
|
||||
+ ref.send( "saverLockReady" );
|
||||
+ }
|
||||
+
|
||||
+ if (in_internal_mode == FALSE) {
|
||||
+ return app.exec();
|
||||
+ }
|
||||
+ else {
|
||||
+ pid_t kdesktop_pid = atoi(args->getOption( "internal" ));
|
||||
+ app.exec();
|
||||
+ if (kill(kdesktop_pid, SIGUSR1) < 0) {
|
||||
+ // The controlling kdesktop process probably died. Commit suicide...
|
||||
+ return 12;
|
||||
+ }
|
||||
|
||||
- return app.exec();
|
||||
+ // 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,19 +0,0 @@
|
||||
commit bd9c1479d7a965959147398d71f18be62b2aa8b6
|
||||
Author: Darrell Anderson <humanreadable@yahoo.com>
|
||||
Date: 1333232418 -0500
|
||||
|
||||
Ensure pagersettings.kcfg is installed.
|
||||
|
||||
diff --git a/kicker/applets/minipager/CMakeLists.txt b/kicker/applets/minipager/CMakeLists.txt
|
||||
index b9ca9c7..a90269c 100644
|
||||
--- a/kicker/applets/minipager/CMakeLists.txt
|
||||
+++ b/kicker/applets/minipager/CMakeLists.txt
|
||||
@@ -27,7 +27,7 @@ link_directories(
|
||||
##### other data ################################
|
||||
|
||||
install( FILES minipagerapplet.desktop DESTINATION ${DATA_INSTALL_DIR}/kicker/applets )
|
||||
-
|
||||
+install( FILES pagersettings.kcfg DESTINATION ${KCFG_INSTALL_DIR} )
|
||||
|
||||
##### minipager_panelapplet (module) ############
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- kdebase/kdm/backend/CMakeLists.txt.ORI 2012-09-19 21:39:48.505001985 +0200
|
||||
+++ kdebase/kdm/backend/CMakeLists.txt 2012-09-19 21:40:08.951005360 +0200
|
||||
@@ -14,6 +14,7 @@
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${DBUS_TQT_INCLUDE_DIRS}
|
||||
)
|
||||
|
@ -1,30 +0,0 @@
|
||||
commit 5df6c5fca20e917aaa82665131b931a0aa7c8628
|
||||
Author: Darrell Anderson <humanreadable@yahoo.com>
|
||||
Date: 1332447011 -0500
|
||||
|
||||
Restore code snippet removed with GIT hash
|
||||
27856879bf962f178d88e79144e37a47e731b122,
|
||||
Sept. 3, 2010, "Massive import of OpenSUSE patches."
|
||||
Restoring this snippet restores the device icon
|
||||
placement and resolves bug report 392.
|
||||
|
||||
diff --git a/kdesktop/kdiconview.cc b/kdesktop/kdiconview.cc
|
||||
index e2f1c80..3404e4a 100644
|
||||
--- a/kdesktop/kdiconview.cc
|
||||
+++ b/kdesktop/kdiconview.cc
|
||||
@@ -1141,6 +1141,15 @@ void KDIconView::slotNewItems( const KFileItemList & entries )
|
||||
kdDebug(1214)<<"Using saved position"<<endl;
|
||||
}
|
||||
}
|
||||
+ else
|
||||
+ {
|
||||
+ // Not found, we'll need to save the new pos
|
||||
+ kdDebug(1214)<<"slotNewItems(): New item without position information, try to find a sane location"<<endl;
|
||||
+
|
||||
+ moveToFreePosition(fileIVI);
|
||||
+
|
||||
+ m_bNeedSave = true;
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -1,162 +0,0 @@
|
||||
commit d2f8fca98e6d276f442f90dee48164be15d8e287
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1337223371 -0500
|
||||
|
||||
Fix fancy logout not allowing interaction with save dialogs
|
||||
This closes Bug 922
|
||||
Fix desktop wallpaper export failing when triggered by krootbacking or ksmserver and konsole or kdesktop_lock not previously loaded
|
||||
|
||||
diff --git a/krootbacking/krootbacking.cpp b/krootbacking/krootbacking.cpp
|
||||
index 8e41b50..fe8574a 100644
|
||||
--- a/krootbacking/krootbacking.cpp
|
||||
+++ b/krootbacking/krootbacking.cpp
|
||||
@@ -54,6 +54,8 @@ public:
|
||||
KRootBacking::KRootBacking()
|
||||
: TQObject(KApplication::desktop(), "KRootBacking" ), m_Desk(0), m_timeout(0)
|
||||
{
|
||||
+ enableExports();
|
||||
+
|
||||
init();
|
||||
}
|
||||
|
||||
diff --git a/ksmserver/shutdown.cpp b/ksmserver/shutdown.cpp
|
||||
index a4ca020..09cb2d7 100644
|
||||
--- a/ksmserver/shutdown.cpp
|
||||
+++ b/ksmserver/shutdown.cpp
|
||||
@@ -189,24 +189,6 @@ void KSMServer::shutdownInternal( KApplication::ShutdownConfirm confirm,
|
||||
// shall we save the session on logout?
|
||||
saveSession = ( config->readEntry( "loginMode", "restorePreviousLogout" ) == "restorePreviousLogout" );
|
||||
|
||||
- if (showFancyLogout) {
|
||||
- KSMShutdownIPFeedback::showit(); // hide the UGLY logout process from the user
|
||||
- shutdownNotifierIPDlg = KSMShutdownIPDlg::showShutdownIP();
|
||||
- while (!KSMShutdownIPFeedback::ispainted()) {
|
||||
- tqApp->processEvents();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- // synchronize any folders that were requested for shutdown sync
|
||||
- if (shutdownNotifierIPDlg) {
|
||||
- static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setStatusMessage(i18n("Synchronizing remote folders").append("..."));
|
||||
- }
|
||||
- KRsync krs(this, "");
|
||||
- krs.executeLogoutAutoSync();
|
||||
- if (shutdownNotifierIPDlg) {
|
||||
- static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setStatusMessage(i18n("Saving your settings..."));
|
||||
- }
|
||||
-
|
||||
if ( saveSession )
|
||||
sessionGroup = TQString("Session: ") + SESSION_PREVIOUS_LOGOUT;
|
||||
|
||||
@@ -252,9 +234,9 @@ void KSMServer::shutdownInternal( KApplication::ShutdownConfirm confirm,
|
||||
completeShutdownOrCheckpoint();
|
||||
}
|
||||
else {
|
||||
- if (showFancyLogout) {
|
||||
- KSMShutdownIPFeedback::stop();
|
||||
- }
|
||||
+ if (showFancyLogout) {
|
||||
+ KSMShutdownIPFeedback::stop();
|
||||
+ }
|
||||
}
|
||||
dialogActive = false;
|
||||
}
|
||||
@@ -502,6 +484,25 @@ void KSMServer::completeShutdownOrCheckpoint()
|
||||
if ( waitForPhase2 )
|
||||
return;
|
||||
|
||||
+ bool showFancyLogout = KConfigGroup(KGlobal::config(), "Logout").readBoolEntry("showFancyLogout", true);
|
||||
+ if (showFancyLogout) {
|
||||
+ KSMShutdownIPFeedback::showit(); // hide the UGLY logout process from the user
|
||||
+ shutdownNotifierIPDlg = KSMShutdownIPDlg::showShutdownIP();
|
||||
+ while (!KSMShutdownIPFeedback::ispainted()) {
|
||||
+ tqApp->processEvents();
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // synchronize any folders that were requested for shutdown sync
|
||||
+ if (shutdownNotifierIPDlg) {
|
||||
+ static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setStatusMessage(i18n("Synchronizing remote folders").append("..."));
|
||||
+ }
|
||||
+ KRsync krs(this, "");
|
||||
+ krs.executeLogoutAutoSync();
|
||||
+ if (shutdownNotifierIPDlg) {
|
||||
+ static_cast<KSMShutdownIPDlg*>(shutdownNotifierIPDlg)->setStatusMessage(i18n("Saving your settings..."));
|
||||
+ }
|
||||
+
|
||||
if ( saveSession )
|
||||
storeSession();
|
||||
else
|
||||
diff --git a/ksmserver/shutdowndlg.cpp b/ksmserver/shutdowndlg.cpp
|
||||
index 163352a..35cae65 100644
|
||||
--- a/ksmserver/shutdowndlg.cpp
|
||||
+++ b/ksmserver/shutdowndlg.cpp
|
||||
@@ -528,6 +528,11 @@ KSMShutdownIPFeedback::KSMShutdownIPFeedback()
|
||||
: TQWidget( 0L, "systemmodaldialogclass", Qt::WStyle_Customize | Qt::WStyle_NoBorder | Qt::WStyle_StaysOnTop ), m_timeout(0), m_isPainted(false), m_sharedRootPixmap(NULL), mPixmapTimeout(0)
|
||||
|
||||
{
|
||||
+ setShown(false);
|
||||
+ hide();
|
||||
+
|
||||
+ enableExports();
|
||||
+
|
||||
m_sharedRootPixmap = new KRootPixmap(this);
|
||||
m_sharedRootPixmap->setCustomPainting(true);
|
||||
connect(m_sharedRootPixmap, TQT_SIGNAL(backgroundUpdated(const TQPixmap &)), this, TQT_SLOT(slotSetBackgroundPixmap(const TQPixmap &)));
|
||||
@@ -554,15 +559,36 @@ KSMShutdownIPFeedback::KSMShutdownIPFeedback()
|
||||
setBackgroundPixmap( m_root );
|
||||
setGeometry( TQApplication::desktop()->geometry() );
|
||||
setBackgroundMode( TQWidget::NoBackground );
|
||||
-
|
||||
- setShown(true);
|
||||
}
|
||||
|
||||
void KSMShutdownIPFeedback::showNow()
|
||||
{
|
||||
+ setShown(true);
|
||||
+
|
||||
TQTimer::singleShot( 0, this, SLOT(slotPaintEffect()) );
|
||||
}
|
||||
|
||||
+void KSMShutdownIPFeedback::enableExports()
|
||||
+{
|
||||
+#ifdef Q_WS_X11
|
||||
+ kdDebug(270) << k_lineinfo << "activating background exports.\n";
|
||||
+ DCOPClient *client = kapp->dcopClient();
|
||||
+ if (!client->isAttached()) {
|
||||
+ client->attach();
|
||||
+ }
|
||||
+ TQByteArray data;
|
||||
+ TQDataStream args( data, IO_WriteOnly );
|
||||
+ args << 1;
|
||||
+
|
||||
+ TQCString appname( "kdesktop" );
|
||||
+ int screen_number = DefaultScreen(qt_xdisplay());
|
||||
+ if ( screen_number )
|
||||
+ appname.sprintf("kdesktop-screen-%d", screen_number );
|
||||
+
|
||||
+ client->send( appname, "KBackgroundIface", "setExport(int)", data );
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
KSMShutdownIPFeedback::~KSMShutdownIPFeedback()
|
||||
{
|
||||
if (m_sharedRootPixmap) {
|
||||
diff --git a/ksmserver/shutdowndlg.h b/ksmserver/shutdowndlg.h
|
||||
index db66c55..05ca991 100644
|
||||
--- a/ksmserver/shutdowndlg.h
|
||||
+++ b/ksmserver/shutdowndlg.h
|
||||
@@ -97,6 +97,13 @@
|
||||
void slotSetBackgroundPixmap(const TQPixmap &);
|
||||
|
||||
private:
|
||||
+ /**
|
||||
+ * Asks KDesktop to export the desktop background as a KSharedPixmap.
|
||||
+ * This method uses DCOP to call KBackgroundIface/setExport(int).
|
||||
+ */
|
||||
+ void enableExports();
|
||||
+
|
||||
+private:
|
||||
static KSMShutdownIPFeedback * s_pSelf;
|
||||
KSMShutdownIPFeedback();
|
||||
int m_currentY;
|
@ -1,46 +0,0 @@
|
||||
commit d409abdbef8dd8b72bb2f311fcaa7456bdc2404b
|
||||
Author: Luboš Luňák <l.lunak@suse.cz>
|
||||
Date: Fri Mar 4 16:22:23 2011 +0100
|
||||
|
||||
do not show hostname in titlebar if it's FQDN of localhost
|
||||
|
||||
diff --git a/kwin/utils.cpp b/kwin/utils.cpp
|
||||
--- a/kwin/utils.cpp
|
||||
+++ b/kwin/utils.cpp
|
||||
@@ -18,6 +18,8 @@
|
||||
#include "utils.h"
|
||||
|
||||
#include <unistd.h>
|
||||
+#include <string.h>
|
||||
+#include <netdb.h>
|
||||
|
||||
#ifndef KCMRULES
|
||||
|
||||
@@ -323,6 +325,27 @@ bool isLocalMachine( const TQCString& host )
|
||||
if( host == hostnamebuf )
|
||||
return true;
|
||||
}
|
||||
+ else
|
||||
+ { // e.g. LibreOffice likes to give FQDN, even if gethostname() doesn't include domain
|
||||
+ struct addrinfo hints, *res, *addr;
|
||||
+ bool is_local = false;
|
||||
+
|
||||
+ memset (&hints, 0, sizeof (hints));
|
||||
+ hints.ai_family = PF_UNSPEC;
|
||||
+ hints.ai_socktype = SOCK_STREAM;
|
||||
+ hints.ai_flags |= AI_CANONNAME;
|
||||
+
|
||||
+ if( getaddrinfo( host, NULL, &hints, &res ) != 0)
|
||||
+ return false;
|
||||
+ for(addr = res; !is_local && addr; addr = addr->ai_next)
|
||||
+ {
|
||||
+ if( res->ai_canonname &&
|
||||
+ host == TQCString( res->ai_canonname ))
|
||||
+ is_local = true;
|
||||
+ }
|
||||
+ freeaddrinfo(res);
|
||||
+ return is_local;
|
||||
+ }
|
||||
}
|
||||
return false;
|
||||
}
|
@ -1,157 +0,0 @@
|
||||
commit f05f9dc7532ea41c49b3e9385165d942dfab5d0e
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1327036924 -0600
|
||||
|
||||
If someone manages to close down kdesktop_lock through an undiscovered security vulnerability such as http://security-tracker.debian.org/tracker/CVE-2012-0064, immediately terminate the compromised TDE session
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 6bd18f7..2588bbf 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -326,10 +326,8 @@ static int signal_pipe[2];
|
||||
static void sigterm_handler(int)
|
||||
{
|
||||
if (!trinity_desktop_lock_in_sec_dlg) {
|
||||
- char tmp = 'T';
|
||||
- if (::write( signal_pipe[1], &tmp, 1) == -1) {
|
||||
- // Error handler to shut up gcc warnings
|
||||
- }
|
||||
+ // Exit uncleanly
|
||||
+ exit(1);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -522,7 +520,7 @@ void LockProcess::setupSignals()
|
||||
sigaddset(&(act.sa_mask), SIGQUIT);
|
||||
act.sa_flags = 0;
|
||||
sigaction(SIGQUIT, &act, 0L);
|
||||
- // exit cleanly on SIGTERM
|
||||
+ // exit uncleanly on SIGTERM
|
||||
act.sa_handler= sigterm_handler;
|
||||
sigemptyset(&(act.sa_mask));
|
||||
sigaddset(&(act.sa_mask), SIGTERM);
|
||||
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
|
||||
index b957218..c5306e9 100644
|
||||
--- a/kdesktop/lockeng.cc
|
||||
+++ b/kdesktop/lockeng.cc
|
||||
@@ -36,10 +36,11 @@ bool trinity_lockeng_sak_available = TRUE;
|
||||
// a newly started process.
|
||||
//
|
||||
SaverEngine::SaverEngine()
|
||||
- : KScreensaverIface(),
|
||||
- TQWidget(),
|
||||
+ : TQWidget(),
|
||||
+ KScreensaverIface(),
|
||||
mBlankOnly(false),
|
||||
- mSAKProcess(NULL)
|
||||
+ mSAKProcess(NULL),
|
||||
+ mTerminationRequested(false)
|
||||
{
|
||||
// Save X screensaver parameters
|
||||
XGetScreenSaver(qt_xdisplay(), &mXTimeout, &mXInterval,
|
||||
@@ -340,6 +341,7 @@ void SaverEngine::stopLockProcess()
|
||||
kdDebug(1204) << "SaverEngine: stopping lock" << endl;
|
||||
emitDCOPSignal("KDE_stop_screensaver()", TQByteArray());
|
||||
|
||||
+ mTerminationRequested=true;
|
||||
mLockProcess.kill();
|
||||
|
||||
if (mEnabled)
|
||||
@@ -357,7 +359,33 @@ void SaverEngine::stopLockProcess()
|
||||
|
||||
void SaverEngine::lockProcessExited()
|
||||
{
|
||||
+printf("Lock process exited\n\r"); fflush(stdout);
|
||||
+ bool abnormalExit = false;
|
||||
kdDebug(1204) << "SaverEngine: lock exited" << endl;
|
||||
+ if (mLockProcess.normalExit() == false) {
|
||||
+ abnormalExit = true;
|
||||
+ }
|
||||
+ else {
|
||||
+ if (mLockProcess.exitStatus() != 0) {
|
||||
+ abnormalExit = true;
|
||||
+ }
|
||||
+ }
|
||||
+ if (mTerminationRequested == true) {
|
||||
+ abnormalExit = false;
|
||||
+ }
|
||||
+ if (abnormalExit == true) {
|
||||
+ // PROBABLE HACKING ATTEMPT DETECTED
|
||||
+ // Terminate the TDE session ASAP!
|
||||
+ // Values are explained at http://lists.kde.org/?l=kde-linux&m=115770988603387
|
||||
+ TQByteArray data;
|
||||
+ TQDataStream arg(data, IO_WriteOnly);
|
||||
+ arg << (int)0 << (int)0 << (int)2;
|
||||
+ if ( ! kapp->dcopClient()->send("ksmserver", "default", "logout(int,int,int)", data) ) {
|
||||
+ // Someone got to DCOP before we did
|
||||
+ // Try an emergency system logout
|
||||
+ system("logout");
|
||||
+ }
|
||||
+ }
|
||||
if (trinity_lockeng_sak_available == TRUE) {
|
||||
handleSecureDialog();
|
||||
}
|
||||
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
|
||||
index b1e31bd..ae81f90 100644
|
||||
--- a/kdesktop/lockeng.h
|
||||
+++ b/kdesktop/lockeng.h
|
||||
@@ -114,6 +114,7 @@ protected:
|
||||
|
||||
private:
|
||||
KProcess* mSAKProcess;
|
||||
+ bool mTerminationRequested;
|
||||
};
|
||||
|
||||
#endif
|
||||
commit 5f8d730703882e1335305a2c43a378f0c4b96e8e
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1327216641 -0600
|
||||
|
||||
Fix desktop lock
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 2588bbf..5acc96e 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -630,6 +630,8 @@ void LockProcess::startSecureDialog()
|
||||
return;
|
||||
}
|
||||
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
+
|
||||
int ret;
|
||||
SecureDlg inDlg( this );
|
||||
inDlg.setRetInt(&ret);
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 2711c36..c0b8e24 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -181,14 +181,14 @@ int main( int argc, char **argv )
|
||||
rt = process.runSecureDialog();
|
||||
}
|
||||
else {
|
||||
- return 1;
|
||||
+ return 0;
|
||||
}
|
||||
}
|
||||
else {
|
||||
rt = process.defaultSave();
|
||||
}
|
||||
if (!rt) {
|
||||
- return 1;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
if( sig )
|
||||
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
|
||||
index fb0f754..5307c5c 100644
|
||||
--- a/kdesktop/lockeng.cc
|
||||
+++ b/kdesktop/lockeng.cc
|
||||
@@ -372,6 +372,7 @@ printf("Lock process exited\n\r"); fflush(stdout);
|
||||
}
|
||||
if (mTerminationRequested == true) {
|
||||
abnormalExit = false;
|
||||
+ mTerminationRequested = false;
|
||||
}
|
||||
if (abnormalExit == true) {
|
||||
// PROBABLE HACKING ATTEMPT DETECTED
|
@ -1,18 +0,0 @@
|
||||
commit 59ee4f6630e6ed6b2712600a88d3ba9ce383620b
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1339467335 -0500
|
||||
|
||||
Fix tdesu/tdesudo argument compatibility problem
|
||||
|
||||
diff --git a/kdesu/kdesu/kdesu.cpp b/kdesu/kdesu/kdesu.cpp
|
||||
index 3511b1f..8ea82fb 100644
|
||||
--- a/kdesu/kdesu/kdesu.cpp
|
||||
+++ b/kdesu/kdesu/kdesu.cpp
|
||||
@@ -63,6 +63,7 @@ static KCmdLineOptions options[] = {
|
||||
{ "p <prio>", I18N_NOOP("Set priority value: 0 <= prio <= 100, 0 is lowest"), "50" },
|
||||
{ "r", I18N_NOOP("Use realtime scheduling"), 0 },
|
||||
{ "nonewdcop", I18N_NOOP("Let command use existing dcopserver"), 0 },
|
||||
+ { "comment <comment>", I18N_NOOP("Ignored"), "" },
|
||||
{ "noignorebutton", I18N_NOOP("Do not display ignore button"), 0 },
|
||||
{ "i <icon name>", I18N_NOOP("Specify icon to use in the password dialog"), 0},
|
||||
{ "d", I18N_NOOP("Do not show the command to be run in the dialog"), 0},
|
@ -1,47 +0,0 @@
|
||||
commit 1e2983ad0107fb1d26e3e9931528701f30632c6d
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1326856834 -0600
|
||||
|
||||
Fix kdm_greet high CPU usage
|
||||
Clean up a few build warnings
|
||||
|
||||
diff --git a/kdm/kfrontend/kgreeter.cpp b/kdm/kfrontend/kgreeter.cpp
|
||||
index 9b974cc..5877cb6 100644
|
||||
--- a/kdm/kfrontend/kgreeter.cpp
|
||||
+++ b/kdm/kfrontend/kgreeter.cpp
|
||||
@@ -273,6 +273,9 @@ void KGreeter::handleInputPipe(void) {
|
||||
readbuf[numread] = 0;
|
||||
readbuf[2047] = 0;
|
||||
inputcommand += readbuf;
|
||||
+ if (!tqApp->hasPendingEvents()) {
|
||||
+ usleep(500);
|
||||
+ }
|
||||
tqApp->processEvents();
|
||||
}
|
||||
if (closingDown) {
|
||||
@@ -508,11 +511,11 @@ KGreeter::insertUsers(int limit_users)
|
||||
int count = 0;
|
||||
for (setpwent(); (ps = getpwent()) != 0;) {
|
||||
if (*ps->pw_dir && *ps->pw_shell &&
|
||||
- (ps->pw_uid >= (unsigned)_lowUserId ||
|
||||
- !ps->pw_uid && _showRoot) &&
|
||||
- ps->pw_uid <= (unsigned)_highUserId &&
|
||||
- !noUsers.hasUser( ps->pw_name ) &&
|
||||
- !noUsers.hasGroup( ps->pw_gid ))
|
||||
+ ((ps->pw_uid >= (unsigned)_lowUserId) ||
|
||||
+ ((!ps->pw_uid) && _showRoot)) &&
|
||||
+ (ps->pw_uid <= (unsigned)_highUserId) &&
|
||||
+ (!noUsers.hasUser( ps->pw_name )) &&
|
||||
+ (!noUsers.hasGroup( ps->pw_gid )))
|
||||
{
|
||||
TQString username( TQFile::decodeName( ps->pw_name ) );
|
||||
if (!dupes.find( username )) {
|
||||
@@ -574,7 +577,7 @@ KGreeter::insertUsers(int limit_users)
|
||||
for (setpwent(); (ps = getpwent()) != 0;) {
|
||||
if (*ps->pw_dir && *ps->pw_shell &&
|
||||
(ps->pw_uid >= (unsigned)_lowUserId ||
|
||||
- !ps->pw_uid && _showRoot) &&
|
||||
+ ((!ps->pw_uid) && _showRoot)) &&
|
||||
ps->pw_uid <= (unsigned)_highUserId &&
|
||||
(users.hasUser( ps->pw_name ) ||
|
||||
users.hasGroup( ps->pw_gid )))
|
@ -1,38 +0,0 @@
|
||||
commit b45b4bd730da3196a4658773f7eef46e004a39d6
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1337063762 -0500
|
||||
|
||||
Fix KHTML smooth scrolling control center option
|
||||
This closes Bug 1001
|
||||
Thanks to Roman Savochenko for the patch!
|
||||
|
||||
diff --git a/kcontrol/konqhtml/htmlopts.cpp b/kcontrol/konqhtml/htmlopts.cpp
|
||||
index 0b81421..9e199cb 100644
|
||||
--- a/kcontrol/konqhtml/htmlopts.cpp
|
||||
+++ b/kcontrol/konqhtml/htmlopts.cpp
|
||||
@@ -299,7 +299,7 @@ void KMiscHTMLOptions::load( bool useDefaults )
|
||||
KConfig kdeglobals("kdeglobals", true, false);
|
||||
kdeglobals.setReadDefaults( useDefaults );
|
||||
kdeglobals.setGroup("KDE");
|
||||
- bool smoothScrolling = kdeglobals.readBoolEntry("SmoothScroll", DEFAULT_SMOOTHSCROLL);
|
||||
+ bool smoothScrolling = kdeglobals.readBoolEntry("SmoothScrolling", DEFAULT_SMOOTHSCROLL);
|
||||
if (smoothScrolling)
|
||||
m_pSmoothScrollingCombo->setCurrentItem( SmoothScrollingAlways );
|
||||
else
|
||||
@@ -374,13 +374,13 @@ void KMiscHTMLOptions::save()
|
||||
switch(m_pSmoothScrollingCombo->currentItem())
|
||||
{
|
||||
case SmoothScrollingAlways:
|
||||
- kdeglobals.writeEntry( "SmoothScroll", true );
|
||||
+ kdeglobals.writeEntry( "SmoothScrolling", true );
|
||||
break;
|
||||
case SmoothScrollingNever:
|
||||
- kdeglobals.writeEntry( "SmoothScroll", false );
|
||||
+ kdeglobals.writeEntry( "SmoothScrolling", false );
|
||||
break;
|
||||
// case SmoothScrollingWhenEfficient:
|
||||
- // kdeglobals.writeEntry( "SmoothScroll", somethingelse );
|
||||
+ // kdeglobals.writeEntry( "SmoothScrolling", somethingelse );
|
||||
// break;
|
||||
}
|
||||
kdeglobals.sync();
|
@ -1,57 +0,0 @@
|
||||
commit e72f4926c094b2bd94501518fbcd2a3e66a74f6a
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1335166907 -0500
|
||||
|
||||
Fix sftp failure on newer systems
|
||||
This closes Bug 897
|
||||
|
||||
diff --git a/kioslave/sftp/ksshprocess.cpp b/kioslave/sftp/ksshprocess.cpp
|
||||
index 2ccab59..3393f89 100644
|
||||
--- a/kioslave/sftp/ksshprocess.cpp
|
||||
+++ b/kioslave/sftp/ksshprocess.cpp
|
||||
@@ -569,7 +569,9 @@ TQString KSshProcess::getLine() {
|
||||
// If we still don't have anything in our buffer so there must
|
||||
// not be anything on the pty or stderr. Setup a select()
|
||||
// to wait for some data from SSH.
|
||||
- if( buffer.empty() ) {
|
||||
+ // Hack around select() failure on newer systems
|
||||
+ unsigned long milliseconds = 0;
|
||||
+ while ((buffer.size() == 0) && (milliseconds < (60*1000))) {
|
||||
//kdDebug(KSSHPROC) << "KSshProcess::getLine(): " <<
|
||||
// "Line buffer empty, calling select() to wait for data." << endl;
|
||||
int errfd = ssh.stderrFd();
|
||||
@@ -616,14 +618,18 @@ TQString KSshProcess::getLine() {
|
||||
// had data on it first.
|
||||
if( FD_ISSET(ptyfd, &rfds) ) {
|
||||
ptyLine = ssh.readLineFromPty(false);
|
||||
- buffer.prepend(TQString(ptyLine));
|
||||
+ if (ptyLine.size() > 0) {
|
||||
+ buffer.prepend(TQString(ptyLine));
|
||||
+ }
|
||||
//kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
|
||||
// "line from pty -" << ptyLine << endl;
|
||||
}
|
||||
-
|
||||
+
|
||||
if( FD_ISSET(errfd, &rfds) ) {
|
||||
errLine = ssh.readLineFromStderr(false);
|
||||
- buffer.prepend(TQString(errLine));
|
||||
+ if (errLine.size() > 0) {
|
||||
+ buffer.prepend(TQString(errLine));
|
||||
+ }
|
||||
//kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
|
||||
// "line from err -" << errLine << endl;
|
||||
}
|
||||
@@ -637,7 +643,11 @@ TQString KSshProcess::getLine() {
|
||||
kdDebug(KSSHPROC) << "KSshProcess::getLine(): "
|
||||
"Exception on std err file descriptor." << endl;
|
||||
}
|
||||
-
|
||||
+
|
||||
+ if (buffer.size() == 0) {
|
||||
+ milliseconds++;
|
||||
+ usleep(1000);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
|
@ -1,23 +0,0 @@
|
||||
commit 073dc86aceaa060597d7653747c3c6c14d0ed59d
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1335311121 -0500
|
||||
|
||||
Fix sftp when nonstandard port is specified in ssh config
|
||||
|
||||
diff --git a/kioslave/sftp/kio_sftp.cpp b/kioslave/sftp/kio_sftp.cpp
|
||||
index 2316c8c..04a2b33 100644
|
||||
--- a/kioslave/sftp/kio_sftp.cpp
|
||||
+++ b/kioslave/sftp/kio_sftp.cpp
|
||||
@@ -481,11 +481,7 @@ void sftpProtocol::setHost (const TQString& h, int port, const TQString& user, c
|
||||
if( port > 0 )
|
||||
mPort = port;
|
||||
else {
|
||||
- struct servent *pse;
|
||||
- if( (pse = getservbyname("ssh", "tcp") ) == NULL )
|
||||
- mPort = 22;
|
||||
- else
|
||||
- mPort = ntohs(pse->s_port);
|
||||
+ mPort = -1;
|
||||
}
|
||||
|
||||
mUsername = user;
|
@ -1,18 +0,0 @@
|
||||
commit f752bcbf6585c61f414963ad83e1300a1da08504
|
||||
Author: Darrell Anderson <humanreadable@yahoo.com>
|
||||
Date: 1333232616 -0500
|
||||
|
||||
Fix "Malformed URL $( kxdglauncher --getpath xdgname DOCUMENTS )" error dialog.
|
||||
|
||||
diff --git a/kioslave/system/entries/documents.desktop b/kioslave/system/entries/documents.desktop
|
||||
index e5fc3d1..d65cc3d 100644
|
||||
--- a/kioslave/system/entries/documents.desktop
|
||||
+++ b/kioslave/system/entries/documents.desktop
|
||||
@@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Type=Link
|
||||
-Path=$( kxdglauncher --getpath --xdgname DOCUMENTS )
|
||||
+URL=$( kxdglauncher --getpath --xdgname DOCUMENTS )
|
||||
Icon=folder_man
|
||||
Name=Documents Folder
|
||||
Name[af]=Dokument Gids
|
@ -1,102 +0,0 @@
|
||||
--- kdebase/ConfigureChecks.cmake.libdetect 2012-09-06 20:55:39.679897201 +0200
|
||||
+++ kdebase/ConfigureChecks.cmake 2012-09-06 21:06:41.454048511 +0200
|
||||
@@ -100,22 +100,26 @@
|
||||
# xext (kwin/kompmgr)
|
||||
if( WITH_XEXT )
|
||||
pkg_search_module( XEXT xext )
|
||||
- if( XEXT_FOUND )
|
||||
- set( HAVE_XEXT 1 )
|
||||
- else( XEXT_FOUND )
|
||||
- tde_message_fatal( "xext is requested, but was not found on your system" )
|
||||
+ if( NOT XEXT_FOUND )
|
||||
+ find_path( XEXT_INCLUDE_DIR "X11/extensions/Xext.h" )
|
||||
+ if ( NOT XEXT_INCLUDE_DIR )
|
||||
+ tde_message_fatal( "xext is requested, but was not found on your system" )
|
||||
+ endif( )
|
||||
endif( )
|
||||
+ set( HAVE_XEXT 1 )
|
||||
endif( )
|
||||
|
||||
|
||||
# xtest (kxkb)
|
||||
if( WITH_XTEST )
|
||||
pkg_search_module( XTEST xtst )
|
||||
- if( XTEST_FOUND )
|
||||
- set( HAVE_XTEST 1 )
|
||||
- else( XTEST_FOUND )
|
||||
- tde_message_fatal( "xtest is requested, but was not found on your system" )
|
||||
+ if( NOT XTEST_FOUND )
|
||||
+ find_path ( XTEST_INCLUDE_DIR "X11/extensions/XTest.h" )
|
||||
+ if( NOT XTEST_INCLUDE_DIR )
|
||||
+ tde_message_fatal( "xtest is requested, but was not found on your system" )
|
||||
+ endif( )
|
||||
endif( )
|
||||
+ set( HAVE_XTEST 1 )
|
||||
endif( )
|
||||
|
||||
|
||||
@@ -125,12 +129,20 @@
|
||||
if( HAVE_XSSLIB )
|
||||
pkg_search_module( XSS xscrnsaver )
|
||||
else( )
|
||||
- check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB )
|
||||
- if( HAVE_XSSLIB )
|
||||
- pkg_search_module( XSS xext )
|
||||
+ find_path( XSS_LIBRARY_DIR "libXss.so" )
|
||||
+ if( XSS_LIBRARY_DIR )
|
||||
+ set( HAVE_XSSLIB 1 )
|
||||
+ else( )
|
||||
+ check_library_exists( Xext XScreenSaverQueryInfo "" HAVE_XSSLIB )
|
||||
+ if( HAVE_XSSLIB )
|
||||
+ pkg_search_module( XSS xext )
|
||||
+ endif( )
|
||||
endif( )
|
||||
endif( )
|
||||
- check_include_file( X11/extensions/scrnsaver.h HAVE_XSCREENSAVER_H )
|
||||
+ find_path( XSCREENSAVER_INCLUDE_DIR "X11/extensions/scrnsaver.h" )
|
||||
+ if( XSCREENSAVER_INCLUDE_DIR )
|
||||
+ set( HAVE_XSCREENSAVER_H 1 )
|
||||
+ endif( )
|
||||
if( HAVE_XSSLIB AND HAVE_XSCREENSAVER_H )
|
||||
set( HAVE_XSCREENSAVER 1 )
|
||||
else( )
|
||||
--- kdebase/kcontrol/ConfigureChecks.cmake.ORI 2012-09-06 21:14:07.070747861 +0200
|
||||
+++ kdebase/kcontrol/ConfigureChecks.cmake 2012-09-06 21:18:33.159501490 +0200
|
||||
@@ -59,10 +59,13 @@
|
||||
|
||||
if( WITH_LIBUSB )
|
||||
pkg_search_module( LIBUSB libusb )
|
||||
- if( LIBUSB_FOUND )
|
||||
- set( HAVE_LIBUSB 1 CACHE INTERNAL "" FORCE )
|
||||
- else( )
|
||||
- tde_message_fatal( "libusb are requested, but not found on your system" )
|
||||
+ if( NOT LIBUSB_FOUND )
|
||||
+ find_path( LIBUSB_LIBRARY_DIR libusb.so )
|
||||
+ if( LIBUSB_LIBRARY_DIR )
|
||||
+ set( HAVE_LIBUSB 1 CACHE INTERNAL "" FORCE )
|
||||
+ else( )
|
||||
+ #tde_message_fatal( "libusb are requested, but not found on your system" )
|
||||
+ endif( )
|
||||
endif( )
|
||||
endif( )
|
||||
|
||||
--- kdebase/kdm/ConfigureChecks.cmake.ORI 2012-09-06 21:43:53.814013510 +0200
|
||||
+++ kdebase/kdm/ConfigureChecks.cmake 2012-09-06 21:44:10.768708628 +0200
|
||||
@@ -112,7 +112,7 @@
|
||||
# Xau
|
||||
pkg_search_module( XAU xau )
|
||||
if( NOT XAU_FOUND )
|
||||
- tde_message_fatal( "Xau are required, but not found on your system" )
|
||||
+ set( XAU_LIBRARIES "-lXau" )
|
||||
endif()
|
||||
|
||||
|
||||
@@ -122,7 +122,7 @@
|
||||
if( XDMCP_FOUND )
|
||||
set( XDMCP 1 CACHE INTERNAL "" FORCE )
|
||||
else()
|
||||
- tde_message_fatal( "xdmcp is requested, but was not found on your system" )
|
||||
+ set( XDMCP_LIBRARIES "-lXdmcp" )
|
||||
endif()
|
||||
endif()
|
||||
|
@ -1,84 +0,0 @@
|
||||
commit 67a3a8f34892a6491ba0073a3f583503b44e58e7
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1335211141 -0500
|
||||
|
||||
Fix desktop lock failure due to race condition within signal handler between qt and xcb
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index c0050d3..3c67ac0 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -659,6 +659,7 @@ void LockProcess::startSecureDialog()
|
||||
mBusy = false;
|
||||
trinity_desktop_lock_in_sec_dlg = false;
|
||||
if (ret == 0) {
|
||||
+ trinity_desktop_lock_closing_windows = 1;
|
||||
kapp->quit();
|
||||
}
|
||||
if (ret == 1) {
|
||||
@@ -687,6 +688,7 @@ void LockProcess::startSecureDialog()
|
||||
mBusy = false;
|
||||
}
|
||||
if (ret == 2) {
|
||||
+ trinity_desktop_lock_closing_windows = 1;
|
||||
if (system("ksysguard &") == -1) {
|
||||
// Error handler to shut up gcc warnings
|
||||
}
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 5853da1..225d9c5 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -260,7 +260,7 @@ int main( int argc, char **argv )
|
||||
|
||||
bool rt;
|
||||
bool sig = false;
|
||||
- if( !child && (args->isSet( "forcelock" ) || (signalled_forcelock == TRUE)))
|
||||
+ if( (((!child) && (args->isSet( "forcelock" ))) || (signalled_forcelock == TRUE)))
|
||||
{
|
||||
rt = process.lock();
|
||||
sig = true;
|
||||
diff --git a/kdesktop/lockeng.cc b/kdesktop/lockeng.cc
|
||||
index 9eb88e1..f24d02f 100644
|
||||
--- a/kdesktop/lockeng.cc
|
||||
+++ b/kdesktop/lockeng.cc
|
||||
@@ -34,7 +34,7 @@ SaverEngine* m_masterSaverEngine = NULL;
|
||||
static void sigusr1_handler(int)
|
||||
{
|
||||
if (m_masterSaverEngine) {
|
||||
- m_masterSaverEngine->lockProcessWaiting();
|
||||
+ m_masterSaverEngine->slotLockProcessWaiting();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -445,6 +445,13 @@ void SaverEngine::lockProcessExited()
|
||||
}
|
||||
}
|
||||
|
||||
+void SaverEngine::slotLockProcessWaiting()
|
||||
+{
|
||||
+ // lockProcessWaiting cannot be called directly from a signal handler, as it will hang in certain obscure circumstances
|
||||
+ // Instead we use a single-shot timer to immediately call lockProcessWaiting once control has returned to the Qt main loop
|
||||
+ TQTimer::singleShot(0, this, SLOT(lockProcessWaiting()));
|
||||
+}
|
||||
+
|
||||
void SaverEngine::lockProcessWaiting()
|
||||
{
|
||||
kdDebug(1204) << "SaverEngine: lock exited" << endl;
|
||||
diff --git a/kdesktop/lockeng.h b/kdesktop/lockeng.h
|
||||
index ae08e9a..e42a048 100644
|
||||
--- a/kdesktop/lockeng.h
|
||||
+++ b/kdesktop/lockeng.h
|
||||
@@ -79,11 +79,12 @@ public:
|
||||
virtual void saverLockReady();
|
||||
|
||||
public slots:
|
||||
- void lockProcessWaiting();
|
||||
+ void slotLockProcessWaiting();
|
||||
|
||||
protected slots:
|
||||
void idleTimeout();
|
||||
void lockProcessExited();
|
||||
+ void lockProcessWaiting();
|
||||
|
||||
private slots:
|
||||
void handleSecureDialog();
|
@ -1,20 +0,0 @@
|
||||
commit 0afb2d8a78d212568f6836dd0e7d41382cfb991d
|
||||
Author: Slávek Banko <slavek.banko@axis.cz>
|
||||
Date: 1341682699 +0200
|
||||
|
||||
Fix menu crash with disabled search field
|
||||
This resolves Bug 1081
|
||||
|
||||
diff --git a/kicker/kicker/ui/k_mnu.cpp b/kicker/kicker/ui/k_mnu.cpp
|
||||
index b7cfe8f..702c921 100644
|
||||
--- a/kicker/kicker/ui/k_mnu.cpp
|
||||
+++ b/kicker/kicker/ui/k_mnu.cpp
|
||||
@@ -273,6 +273,8 @@ void PanelKMenu::initialize()
|
||||
connect(searchEdit, TQT_SIGNAL(textChanged(const TQString&)),
|
||||
this, TQT_SLOT( slotUpdateSearch( const TQString&)));
|
||||
insertItem(hbox, searchLineID, 0);
|
||||
+ } else {
|
||||
+ searchEdit = NULL;
|
||||
}
|
||||
|
||||
//TQToolTip::add(clearButton, i18n("Clear Search"));
|
@ -1,297 +0,0 @@
|
||||
Index: kdesktop/lock/lockdlg.cc
|
||||
===================================================================
|
||||
--- kdesktop/lock/lockdlg.cc (revision 1261452)
|
||||
+++ kdesktop/lock/lockdlg.cc (working copy)
|
||||
@@ -115,7 +115,7 @@
|
||||
frame->setFrameStyle( TQFrame::Panel | TQFrame::Raised );
|
||||
frame->setLineWidth( 2 );
|
||||
|
||||
- TQLabel *pixLabel;
|
||||
+ TQLabel *pixLabel = NULL;
|
||||
if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
pixLabel = new TQLabel( frame, "pixlabel" );
|
||||
pixLabel->setPixmap(DesktopIcon("lock"));
|
||||
@@ -134,7 +134,7 @@
|
||||
i18n("<nobr><b>The session was locked by %1</b><br>").arg( user.fullName() ), frame );
|
||||
}
|
||||
|
||||
- TQLabel *lockDTLabel;
|
||||
+ TQLabel *lockDTLabel = NULL;
|
||||
if ((trinity_desktop_lock_use_system_modal_dialogs) && (!m_lockStartDT.isNull())) {
|
||||
lockDTLabel = new TQLabel(i18n("This session has been locked since %1").arg(m_lockStartDT.toString()), frame);
|
||||
}
|
||||
Index: kdesktop/lock/lockprocess.cc
|
||||
===================================================================
|
||||
--- kdesktop/lock/lockprocess.cc (revision 1261452)
|
||||
+++ kdesktop/lock/lockprocess.cc (working copy)
|
||||
@@ -173,6 +173,7 @@
|
||||
mDialogControlLock(false),
|
||||
mForceReject(false),
|
||||
currentDialog(NULL),
|
||||
+ mEnsureScreenHiddenTimer(NULL),
|
||||
mForceContinualLockDisplayTimer(NULL),
|
||||
mEnsureVRootWindowSecurityTimer(NULL),
|
||||
mHackDelayStartupTimer(NULL),
|
||||
@@ -288,6 +289,10 @@
|
||||
hackResumeTimer->stop();
|
||||
delete hackResumeTimer;
|
||||
}
|
||||
+ if (mEnsureScreenHiddenTimer != NULL) {
|
||||
+ mEnsureScreenHiddenTimer->stop();
|
||||
+ delete mEnsureScreenHiddenTimer;
|
||||
+ }
|
||||
if (mForceContinualLockDisplayTimer != NULL) {
|
||||
mForceContinualLockDisplayTimer->stop();
|
||||
delete mForceContinualLockDisplayTimer;
|
||||
@@ -410,7 +415,7 @@
|
||||
if (numread > 0) {
|
||||
if (readbuf[0] == 'C') {
|
||||
mInfoMessageDisplayed=false;
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
if (currentDialog != NULL) {
|
||||
mForceReject = true;
|
||||
@@ -423,7 +428,7 @@
|
||||
to_display = to_display.remove(0,1);
|
||||
// Lock out password dialogs and close any active dialog
|
||||
mInfoMessageDisplayed=true;
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
if (currentDialog != NULL) {
|
||||
mForceReject = true;
|
||||
@@ -444,7 +449,7 @@
|
||||
to_display = to_display.remove(0,1);
|
||||
// Lock out password dialogs and close any active dialog
|
||||
mInfoMessageDisplayed=true;
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
if (currentDialog != NULL) {
|
||||
mForceReject = true;
|
||||
@@ -468,7 +473,7 @@
|
||||
to_display = to_display.remove(0,1);
|
||||
// Lock out password dialogs and close any active dialog
|
||||
mInfoMessageDisplayed=true;
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
if (currentDialog != NULL) {
|
||||
mForceReject = true;
|
||||
@@ -887,8 +892,13 @@
|
||||
mRootWidth = rootAttr.width;
|
||||
mRootHeight = rootAttr.height;
|
||||
|
||||
+ // Resize the background widget
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
+ // Black out the background widget to hide ugly resize tiling artifacts
|
||||
+ setBackgroundColor(black);
|
||||
+ erase();
|
||||
+
|
||||
// This slot needs to be able to execute very rapidly so as to prevent the user's desktop from ever
|
||||
// being displayed, so we finish the hack restarting/display prettying operations in a separate timed slot
|
||||
if (resizeTimer == NULL) {
|
||||
@@ -902,7 +912,7 @@
|
||||
{
|
||||
stopHack();
|
||||
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
if (closeCurrentWindow()) {
|
||||
TQTimer::singleShot( 0, this, SLOT(doDesktopResizeFinish()) );
|
||||
@@ -911,7 +921,13 @@
|
||||
mDialogControlLock = false;
|
||||
|
||||
// Restart the hack as the window size is now different
|
||||
- startHack();
|
||||
+ if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced && trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
+ ENABLE_CONTINUOUS_LOCKDLG_DISPLAY
|
||||
+ if (mHackStartupEnabled) mHackDelayStartupTimer->start(mHackDelayStartupTimeout, TRUE);
|
||||
+ }
|
||||
+ else {
|
||||
+ startHack();
|
||||
+ }
|
||||
|
||||
mBusy = false;
|
||||
}
|
||||
@@ -1064,7 +1080,7 @@
|
||||
|
||||
if (!grabKeyboard())
|
||||
{
|
||||
- sleep(1);
|
||||
+ usleep(100000);
|
||||
if (!grabKeyboard())
|
||||
{
|
||||
return false;
|
||||
@@ -1073,7 +1089,7 @@
|
||||
|
||||
if (!grabMouse())
|
||||
{
|
||||
- sleep(1);
|
||||
+ usleep(100000);
|
||||
if (!grabMouse())
|
||||
{
|
||||
XUngrabKeyboard(qt_xdisplay(), CurrentTime);
|
||||
@@ -1117,7 +1133,7 @@
|
||||
m_grayImage.fill(0); // Set the alpha buffer to 0 (fully transparent)
|
||||
m_grayImage.setAlphaBuffer(true);
|
||||
TQPixmap m_root;
|
||||
- m_root.resize( TQApplication::desktop()->geometry().width(), TQApplication::desktop()->geometry().height() );
|
||||
+ m_root.resize(mRootWidth, mRootHeight);
|
||||
TQPainter p;
|
||||
p.begin( &m_root );
|
||||
m_grayImage.setAlphaBuffer(false);
|
||||
@@ -1144,14 +1160,21 @@
|
||||
setBackgroundColor(black);
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
}
|
||||
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
// Try to get the root pixmap
|
||||
- m_rootPixmap = new KRootPixmap(this);
|
||||
+ if (!m_rootPixmap) m_rootPixmap = new KRootPixmap(this);
|
||||
m_rootPixmap->setCustomPainting(true);
|
||||
connect(m_rootPixmap, TQT_SIGNAL(backgroundUpdated(const TQPixmap &)), this, TQT_SLOT(slotPaintBackground(const TQPixmap &)));
|
||||
m_rootPixmap->start();
|
||||
+ // Sometimes KRootPixmap fails...make sure the desktop is hidden regardless
|
||||
+ if (!mEnsureScreenHiddenTimer) {
|
||||
+ mEnsureScreenHiddenTimer = new TQTimer( this );
|
||||
+ connect( mEnsureScreenHiddenTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(slotForcePaintBackground()) );
|
||||
+ }
|
||||
+ mEnsureScreenHiddenTimer->start(2000, true);
|
||||
}
|
||||
|
||||
if (trinity_desktop_lock_in_sec_dlg == FALSE) {
|
||||
@@ -1275,6 +1298,7 @@
|
||||
if (!mHackProc.isRunning()) {
|
||||
if (backingPixmap.isNull()) {
|
||||
setBackgroundColor(black);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
}
|
||||
else {
|
||||
@@ -1298,6 +1322,7 @@
|
||||
setBackgroundColor(black);
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
return false;
|
||||
}
|
||||
@@ -1344,6 +1369,7 @@
|
||||
setBackgroundColor(black);
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
mSuspended = false;
|
||||
}
|
||||
@@ -1377,7 +1403,10 @@
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
}
|
||||
- if (backingPixmap.isNull()) erase();
|
||||
+ if (backingPixmap.isNull()) {
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
+ erase();
|
||||
+ }
|
||||
else bitBlt(this, 0, 0, &backingPixmap);
|
||||
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
ENABLE_CONTINUOUS_LOCKDLG_DISPLAY
|
||||
@@ -1416,7 +1445,10 @@
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
}
|
||||
- if (backingPixmap.isNull()) erase();
|
||||
+ if (backingPixmap.isNull()) {
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
+ erase();
|
||||
+ }
|
||||
else bitBlt(this, 0, 0, &backingPixmap);
|
||||
if (!mSuspended) {
|
||||
if (trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
@@ -1492,6 +1524,7 @@
|
||||
setBackgroundColor(black);
|
||||
else
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
return;
|
||||
}
|
||||
@@ -1597,10 +1630,13 @@
|
||||
}
|
||||
mDialogs.prepend( dlg );
|
||||
fakeFocusIn( dlg->winId());
|
||||
- if (backingPixmap.isNull() && trinity_desktop_lock_use_system_modal_dialogs) erase();
|
||||
+ if (backingPixmap.isNull() && trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
+ erase();
|
||||
+ }
|
||||
else bitBlt(this, 0, 0, &backingPixmap);
|
||||
int rt = dlg->exec();
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
currentDialog = NULL;
|
||||
mDialogs.remove( dlg );
|
||||
if( mDialogs.isEmpty() ) {
|
||||
@@ -1624,8 +1660,18 @@
|
||||
return rt;
|
||||
}
|
||||
|
||||
+void LockProcess::slotForcePaintBackground()
|
||||
+{
|
||||
+ TQPixmap blankPixmap(mRootWidth, mRootHeight);
|
||||
+ blankPixmap.fill(Qt::black);
|
||||
+ slotPaintBackground(blankPixmap);
|
||||
+ printf("[WARNING] Unable to obtain desktop wallpaper in a timely manner. High system load or possibly a TDE bug!\n\r"); fflush(stdout);
|
||||
+}
|
||||
+
|
||||
void LockProcess::slotPaintBackground(const TQPixmap &rpm)
|
||||
{
|
||||
+ mEnsureScreenHiddenTimer->stop();
|
||||
+
|
||||
TQPixmap pm = rpm;
|
||||
|
||||
if (TQPaintDevice::x11AppDepth() == 32) {
|
||||
@@ -1652,6 +1698,7 @@
|
||||
backingPixmap = pm;
|
||||
if (trinity_desktop_lock_delay_screensaver_start && trinity_desktop_lock_forced) {
|
||||
setBackgroundPixmap(backingPixmap);
|
||||
+ setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
erase();
|
||||
}
|
||||
}
|
||||
@@ -1677,7 +1724,7 @@
|
||||
mBusy=true;
|
||||
TQTimer::singleShot(1000, this, TQT_SLOT(slotDeadTimePassed()));
|
||||
if (mkeyCode == XKeysymToKeycode(qt_xdisplay(), XF86XK_Display)) {
|
||||
- while (mDialogControlLock == true) sleep(1);
|
||||
+ while (mDialogControlLock == true) usleep(100000);
|
||||
mDialogControlLock = true;
|
||||
currentDialog->close(); // DO NOT use closeCurrentWindow() here!
|
||||
mDialogControlLock = false;
|
||||
Index: kdesktop/lock/lockprocess.h
|
||||
===================================================================
|
||||
--- kdesktop/lock/lockprocess.h (revision 1261452)
|
||||
+++ kdesktop/lock/lockprocess.h (working copy)
|
||||
@@ -74,6 +74,7 @@
|
||||
void doDesktopResizeFinish();
|
||||
void doFunctionKeyBroadcast();
|
||||
void slotPaintBackground(const TQPixmap &pm);
|
||||
+ void slotForcePaintBackground();
|
||||
|
||||
protected:
|
||||
virtual bool x11Event(XEvent *);
|
||||
@@ -181,6 +182,7 @@
|
||||
bool mForceReject;
|
||||
TQDialog *currentDialog;
|
||||
|
||||
+ TQTimer* mEnsureScreenHiddenTimer;
|
||||
TQTimer* mForceContinualLockDisplayTimer;
|
||||
TQTimer* mEnsureVRootWindowSecurityTimer;
|
||||
TQTimer* mHackDelayStartupTimer;
|
@ -1,24 +0,0 @@
|
||||
commit 77041d785dbbede734f8dc44aa454d07d14f0317
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1329161441 -0600
|
||||
|
||||
Clean up 9cc1e2c1 changes to enum
|
||||
This corrects a potential ABI compat problem noted by Martin Gräßlin
|
||||
|
||||
diff --git a/twin/lib/kdecoration.h b/twin/lib/kdecoration.h
|
||||
index 19fe494..f18f970 100644
|
||||
--- a/kwin/lib/kdecoration.h
|
||||
+++ b/kwin/lib/kdecoration.h
|
||||
@@ -97,10 +97,10 @@ public:
|
||||
LowerOp,
|
||||
FullScreenOp,
|
||||
NoBorderOp,
|
||||
- ShadowOp,
|
||||
NoOp,
|
||||
SetupWindowShortcutOp,
|
||||
- ApplicationRulesOp ///< @since 3.5
|
||||
+ ApplicationRulesOp, ///< @since 3.5
|
||||
+ ShadowOp ///< @since 3.5.12
|
||||
};
|
||||
/**
|
||||
* Basic color types that should be recognized by all decoration styles.
|
@ -1,22 +0,0 @@
|
||||
commit 9e172fa7a1e93cc77e09616eb793b823d29ebaec
|
||||
Author: Darrell Anderson <humanreadable@yahoo.com>
|
||||
Date: 1333594438 -0500
|
||||
|
||||
Temporary fix for a probable race condition on some systems.
|
||||
Still needs to be resolved by determining the root cause.
|
||||
Partially resolves bug report 760.
|
||||
|
||||
diff --git a/kioslave/system/kdedmodule/systemdirnotify.cpp b/kioslave/system/kdedmodule/systemdirnotify.cpp
|
||||
index 162d966..99b9ac7 100644
|
||||
--- a/kioslave/system/kdedmodule/systemdirnotify.cpp
|
||||
+++ b/kioslave/system/kdedmodule/systemdirnotify.cpp
|
||||
@@ -36,6 +36,9 @@ SystemDirNotify::SystemDirNotify()
|
||||
void SystemDirNotify::init()
|
||||
{
|
||||
if( mInited )
|
||||
+ // FIXME Work around a race condition by inserting kdDebug delay before following
|
||||
+ // code is executed -- the root cause of the race should be investigated and fixed.
|
||||
+ kdDebug() << "SystemDirNotify::init(" << mInited << ")" << endl;
|
||||
return;
|
||||
mInited = true;
|
||||
KGlobal::dirs()->addResourceType("system_entries",
|
@ -1,152 +0,0 @@
|
||||
--- kdebase/kwin/kompmgr/kompmgr.c.rhel4 2012-09-06 22:02:37.201586743 +0200
|
||||
+++ kdebase/kwin/kompmgr/kompmgr.c 2012-09-06 22:04:39.529337359 +0200
|
||||
@@ -89,6 +89,8 @@
|
||||
#include <pwd.h>
|
||||
#endif
|
||||
|
||||
+#define ShapeInput 2
|
||||
+
|
||||
typedef enum {
|
||||
WINTYPE_DESKTOP,
|
||||
WINTYPE_DOCK,
|
||||
@@ -403,6 +405,70 @@
|
||||
#endif
|
||||
}
|
||||
|
||||
+void
|
||||
+loadConfig(char *filename){
|
||||
+ FILE *file = NULL;
|
||||
+ char line[ 1024 ];
|
||||
+ size_t length = 0;
|
||||
+ Bool wasNull = False;
|
||||
+ Bool section = False;
|
||||
+
|
||||
+ if( filename == NULL ){
|
||||
+#ifdef USE_ENV_HOME
|
||||
+ const char *home = getenv("HOME");
|
||||
+#else
|
||||
+ const char *home;
|
||||
+ struct passwd *p;
|
||||
+ p = getpwuid(getuid());
|
||||
+ if (p)
|
||||
+ home = p->pw_dir;
|
||||
+ else
|
||||
+ home = getenv("HOME");
|
||||
+#endif
|
||||
+ const char *configfile = "/.xcompmgrrc";
|
||||
+ int n = strlen(home)+strlen(configfile)+1;
|
||||
+ filename = (char*)malloc(n*sizeof(char));
|
||||
+ memset(filename,0,n);
|
||||
+ wasNull = True;
|
||||
+
|
||||
+ strcat(filename, home);
|
||||
+ strcat(filename, configfile);
|
||||
+ }
|
||||
+
|
||||
+ printf("trying '%s' as configfile\n\n", filename);
|
||||
+
|
||||
+ if( (file = fopen(filename, "r")) == NULL ){
|
||||
+ printf("failed to open config file. does it exist?\n");
|
||||
+ if( wasNull ){
|
||||
+ free(filename);
|
||||
+ filename = NULL;
|
||||
+ }
|
||||
+ return;
|
||||
+ }
|
||||
+
|
||||
+ /*find section*/
|
||||
+ while( !section && fgets(line, 1023, file) != NULL ){
|
||||
+ if( strcmp(line, "[xcompmgr]\n") == 0 )
|
||||
+ section = True;
|
||||
+ }
|
||||
+ /*read and set values*/
|
||||
+ while( section && fgets(line, 1023, file) != NULL ){
|
||||
+ int ret = strlen( line );
|
||||
+ if( ret > 1 ){
|
||||
+ if( *line == '[' )/*found new section - maybe check for '\n'?*/
|
||||
+ break;
|
||||
+ *(line+ret-1) = '\0';
|
||||
+ setParameter(line);
|
||||
+ }
|
||||
+ }
|
||||
+ printf("\nfinished parsing the config file\n");
|
||||
+ fclose(file);
|
||||
+ if( wasNull ){
|
||||
+ free(filename);
|
||||
+ filename = NULL;
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
void handle_siguser (int sig)
|
||||
{
|
||||
int uidnum;
|
||||
@@ -2992,69 +3058,6 @@
|
||||
return 0;
|
||||
}
|
||||
|
||||
-void
|
||||
-loadConfig(char *filename){
|
||||
- FILE *file = NULL;
|
||||
- char line[ 1024 ];
|
||||
- size_t length = 0;
|
||||
- Bool wasNull = False;
|
||||
- Bool section = False;
|
||||
-
|
||||
- if( filename == NULL ){
|
||||
-#ifdef USE_ENV_HOME
|
||||
- const char *home = getenv("HOME");
|
||||
-#else
|
||||
- const char *home;
|
||||
- struct passwd *p;
|
||||
- p = getpwuid(getuid());
|
||||
- if (p)
|
||||
- home = p->pw_dir;
|
||||
- else
|
||||
- home = getenv("HOME");
|
||||
-#endif
|
||||
- const char *configfile = "/.xcompmgrrc";
|
||||
- int n = strlen(home)+strlen(configfile)+1;
|
||||
- filename = (char*)malloc(n*sizeof(char));
|
||||
- memset(filename,0,n);
|
||||
- wasNull = True;
|
||||
-
|
||||
- strcat(filename, home);
|
||||
- strcat(filename, configfile);
|
||||
- }
|
||||
-
|
||||
- printf("trying '%s' as configfile\n\n", filename);
|
||||
-
|
||||
- if( (file = fopen(filename, "r")) == NULL ){
|
||||
- printf("failed to open config file. does it exist?\n");
|
||||
- if( wasNull ){
|
||||
- free(filename);
|
||||
- filename = NULL;
|
||||
- }
|
||||
- return;
|
||||
- }
|
||||
-
|
||||
- /*find section*/
|
||||
- while( !section && fgets(line, 1023, file) != NULL ){
|
||||
- if( strcmp(line, "[xcompmgr]\n") == 0 )
|
||||
- section = True;
|
||||
- }
|
||||
- /*read and set values*/
|
||||
- while( section && fgets(line, 1023, file) != NULL ){
|
||||
- int ret = strlen( line );
|
||||
- if( ret > 1 ){
|
||||
- if( *line == '[' )/*found new section - maybe check for '\n'?*/
|
||||
- break;
|
||||
- *(line+ret-1) = '\0';
|
||||
- setParameter(line);
|
||||
- }
|
||||
- }
|
||||
- printf("\nfinished parsing the config file\n");
|
||||
- fclose(file);
|
||||
- if( wasNull ){
|
||||
- free(filename);
|
||||
- filename = NULL;
|
||||
- }
|
||||
-}
|
||||
|
||||
void
|
||||
usage (char *program)
|
@ -1,29 +0,0 @@
|
||||
--- kdebase/kdesktop/lock/lockprocess.cc.tooltips 2012-08-10 15:16:14.047229047 +0200
|
||||
+++ kdebase/kdesktop/lock/lockprocess.cc 2012-08-10 15:41:08.433645385 +0200
|
||||
@@ -960,6 +960,26 @@
|
||||
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
+ // Hack to close all tooltips on screen
|
||||
+ Window rootWindow = RootWindow(x11Display(), x11Screen());
|
||||
+ Window parent;
|
||||
+ Window* children = NULL;
|
||||
+ Window* child = NULL;
|
||||
+ unsigned int noOfChildren = 0;
|
||||
+ XWindowAttributes childAttr;
|
||||
+ Window childTransient;
|
||||
+
|
||||
+ if(XQueryTree(x11Display(), rootWindow, &rootWindow, &parent, &children, &noOfChildren) && noOfChildren>0 ) {
|
||||
+ for (unsigned int i=0; i<noOfChildren; i++) {
|
||||
+ if (XGetWindowAttributes(x11Display(), children[i], &childAttr) && XGetTransientForHint(x11Display(), children[i], &childTransient)) {
|
||||
+ if((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
|
||||
+ XUnmapWindow(x11Display(), children[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+
|
||||
kdDebug(1204) << "Saver window Id: " << winId() << endl;
|
||||
}
|
||||
|
@ -1,12 +0,0 @@
|
||||
--- kdebase/tsak/main.cpp.tsak 2012-08-20 18:12:34.000000000 -0400
|
||||
+++ kdebase/tsak/main.cpp 2012-08-20 18:13:16.748272246 -0400
|
||||
@@ -35,7 +35,9 @@
|
||||
#include <sys/time.h>
|
||||
#include <termios.h>
|
||||
#include <signal.h>
|
||||
+extern "C" {
|
||||
#include <libudev.h>
|
||||
+}
|
||||
#include <libgen.h>
|
||||
|
||||
#define FIFO_DIR "/tmp/ksocket-global"
|
@ -1,11 +0,0 @@
|
||||
--- kdebase/kdm/kfrontend/genkdmconf.c.ORI 2011-11-01 21:59:14.450046357 +0100
|
||||
+++ kdebase/kdm/kfrontend/genkdmconf.c 2011-11-01 21:59:34.449045801 +0100
|
||||
@@ -676,7 +676,7 @@
|
||||
" ;;\n"
|
||||
"esac\n"
|
||||
"# invoke global X session script\n"
|
||||
-". /etc/X11/Xsession\n";
|
||||
+". /etc/X11/xinit/Xsession\n";
|
||||
|
||||
static const char def_background[] =
|
||||
"[Desktop0]\n"
|
@ -1,11 +0,0 @@
|
||||
--- kdebase/kdm/kfrontend/genkdmconf.c.ORI 2011-11-01 21:59:14.450046357 +0100
|
||||
+++ kdebase/kdm/kfrontend/genkdmconf.c 2011-11-01 21:59:34.449045801 +0100
|
||||
@@ -676,7 +676,7 @@
|
||||
" ;;\n"
|
||||
"esac\n"
|
||||
"# invoke global X session script\n"
|
||||
-". /etc/X11/Xsession\n";
|
||||
+". /etc/X11/xdm/Xsession\n";
|
||||
|
||||
static const char def_background[] =
|
||||
"[Desktop0]\n"
|
@ -1,133 +0,0 @@
|
||||
--- kdebase.o/kate/app/kateconfigdialog.cpp.orig 2012-04-01 18:22:50.732901887 +0200
|
||||
+++ kdebase/kate/app/kateconfigdialog.cpp 2012-04-01 18:25:01.100327408 +0200
|
||||
@@ -138,6 +138,16 @@
|
||||
TQWhatsThis::add( sb_numRecentFiles, youwouldnotbelieveit );
|
||||
connect( sb_numRecentFiles, TQT_SIGNAL( valueChanged ( int ) ), this, TQT_SLOT( slotChanged() ) );
|
||||
|
||||
+ // Use only one instance of kate (MDI) ?
|
||||
+ cb_useInstance = new TQCheckBox(bgStartup);
|
||||
+ cb_useInstance->setText(i18n("Always use the current instance of kate to open new files"));
|
||||
+ cb_useInstance->setChecked(parent->useInstance);
|
||||
+ TQWhatsThis::add( cb_useInstance, i18n(
|
||||
+ "When checked, all files opened from outside of Kate will only use the "
|
||||
+ "currently opened instance of Kate.") );
|
||||
+ connect( cb_useInstance, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) );
|
||||
+
|
||||
+
|
||||
// sync the konsole ?
|
||||
cb_syncKonsole = new TQCheckBox(bgStartup);
|
||||
cb_syncKonsole->setText(i18n("Sync &terminal emulator with active document"));
|
||||
@@ -161,7 +171,7 @@
|
||||
this, TQT_SLOT( slotChanged() ) );
|
||||
|
||||
// GROUP with the one below: "Meta-informations"
|
||||
- bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("Meta-Information"), frGeneral );
|
||||
+ bgStartup = new TQButtonGroup( 2, Qt::Horizontal, i18n("Meta-Information"), frGeneral );
|
||||
lo->addWidget( bgStartup );
|
||||
|
||||
// save meta infos
|
||||
@@ -409,6 +419,7 @@
|
||||
mainWindow->modNotification = cb_modNotifications->isChecked();
|
||||
|
||||
mainWindow->syncKonsole = cb_syncKonsole->isChecked();
|
||||
+ mainWindow->useInstance = cb_useInstance->isChecked();
|
||||
|
||||
mainWindow->filelist->setSortType(cb_sortFiles->isChecked() ? KateFileList::sortByName : KateFileList::sortByID);
|
||||
|
||||
diff -urN tdebase/kate/app/kateconfigdialog.h tdebase.new/kate/app/kateconfigdialog.h
|
||||
--- tdebase/kate/app/kateconfigdialog.h 2012-01-08 18:00:01.000000000 -0600
|
||||
+++ tdebase.new/kate/app/kateconfigdialog.h 2012-03-11 00:05:03.000000000 -0600
|
||||
@@ -66,6 +66,7 @@
|
||||
|
||||
TQCheckBox *cb_fullPath;
|
||||
TQCheckBox *cb_syncKonsole;
|
||||
+ TQCheckBox *cb_useInstance;
|
||||
TQCheckBox *cb_sortFiles;
|
||||
TQSpinBox *sb_numRecentFiles;
|
||||
TQCheckBox *cb_modNotifications;
|
||||
diff -urN tdebase/kate/app/katemain.cpp tdebase.new/kate/app/katemain.cpp
|
||||
--- tdebase/kate/app/katemain.cpp 2011-12-25 00:52:38.000000000 -0600
|
||||
+++ tdebase.new/kate/app/katemain.cpp 2012-03-11 00:05:03.000000000 -0600
|
||||
@@ -41,6 +41,8 @@
|
||||
{ "start <name>", I18N_NOOP("Start Kate with a given session"), 0 },
|
||||
{ "u", 0, 0 },
|
||||
{ "use", I18N_NOOP("Use a already running kate instance (if possible)"), 0 },
|
||||
+ { "f", 0, 0 },
|
||||
+ { "force-sdi", I18N_NOOP("Force single document mode if the MDI setting is enabled."), 0 },
|
||||
{ "p", 0, 0 },
|
||||
{ "pid <pid>", I18N_NOOP("Only try to reuse kate instance with this pid"), 0 },
|
||||
{ "e", 0, 0 },
|
||||
@@ -57,9 +59,13 @@
|
||||
|
||||
extern "C" KDE_EXPORT int kdemain( int argc, char **argv )
|
||||
{
|
||||
+ KConfig * config = NULL;
|
||||
+ bool alwaysUseInstance;
|
||||
// here we go, construct the Kate version
|
||||
TQString kateVersion = KateApp::kateVersion();
|
||||
|
||||
+ KInstance instance( "kate" );
|
||||
+
|
||||
KAboutData aboutData ("kate", I18N_NOOP("Kate"), kateVersion.latin1(),
|
||||
I18N_NOOP( "Kate - Advanced Text Editor" ), KAboutData::License_LGPL_V2,
|
||||
I18N_NOOP( "(c) 2000-2005 The Kate Authors" ), 0, "http://kate.kde.org");
|
||||
@@ -107,8 +113,13 @@
|
||||
// get our command line args ;)
|
||||
KCmdLineArgs* args = KCmdLineArgs::parsedArgs();
|
||||
|
||||
- // now, first try to contact running kate instance if needed
|
||||
- if ( args->isSet("use") || (::getenv("KATE_PID")!=0) )
|
||||
+ config = KGlobal::config();
|
||||
+ config->setGroup("General");
|
||||
+ alwaysUseInstance = config->readBoolEntry("UseInstance");
|
||||
+
|
||||
+// now, first try to contact running kate instance if needed
|
||||
+ if ( ((args->isSet("use") || alwaysUseInstance) &&
|
||||
+ !(args->isSet("force-sdi"))) || (::getenv("KATE_PID")!=0) )
|
||||
{
|
||||
DCOPClient client;
|
||||
client.attach ();
|
||||
diff -urN tdebase/kate/app/katemainwindow.cpp tdebase.new/kate/app/katemainwindow.cpp
|
||||
--- tdebase/kate/app/katemainwindow.cpp 2012-01-08 18:00:01.000000000 -0600
|
||||
+++ tdebase.new/kate/app/katemainwindow.cpp 2012-03-11 01:18:48.000000000 -0600
|
||||
@@ -406,6 +406,7 @@
|
||||
|
||||
config->setGroup("General");
|
||||
syncKonsole = config->readBoolEntry("Sync Konsole", true);
|
||||
+ useInstance = config->readBoolEntry("UseInstance", false);
|
||||
modNotification = config->readBoolEntry("Modified Notification", false);
|
||||
KateDocManager::self()->setSaveMetaInfos(config->readBoolEntry("Save Meta Infos", true));
|
||||
KateDocManager::self()->setDaysMetaInfos(config->readNumEntry("Days Meta Infos", 30));
|
||||
@@ -437,6 +438,8 @@
|
||||
|
||||
config->writeEntry("Sync Konsole", syncKonsole);
|
||||
|
||||
+ config->writeEntry("UseInstance", useInstance);
|
||||
+
|
||||
fileOpenRecent->saveEntries(config, "Recent Files");
|
||||
|
||||
fileselector->writeConfig(config, "fileselector");
|
||||
diff -urN tdebase/kate/app/katemainwindow.h tdebase.new/kate/app/katemainwindow.h
|
||||
--- tdebase/kate/app/katemainwindow.h 2011-12-25 00:52:38.000000000 -0600
|
||||
+++ tdebase.new/kate/app/katemainwindow.h 2012-03-11 00:05:03.000000000 -0600
|
||||
@@ -182,6 +182,7 @@
|
||||
Kate::ToolViewManager *m_toolViewManager;
|
||||
|
||||
bool syncKonsole;
|
||||
+ bool useInstance;
|
||||
bool modNotification;
|
||||
|
||||
DCOPObject *m_dcop;
|
||||
diff -urN tdebase/kate/app/katemain.cpp tdebase.new/kate/app/katemain.cpp
|
||||
--- tdebase/kate/app/katemain.cpp 2011-12-25 00:52:38.000000000 -0600
|
||||
+++ tdebase.new/kate/app/katemain.cpp 2012-03-11 13:32:05.000000000 -0500
|
||||
@@ -231,7 +231,9 @@
|
||||
else
|
||||
wRef.call("restore");
|
||||
}
|
||||
+ wRef.call( "hide" );
|
||||
wRef.call( "raise" );
|
||||
+ wRef.call( "show" );
|
||||
|
||||
// stop startup notification
|
||||
KStartupInfo::appStarted( );
|
@ -1,71 +0,0 @@
|
||||
diff -urN /dev/shm/kdebase/kate/app/kateconfigdialog.cpp /dev/shm/kdebase.new/kate/app/kateconfigdialog.cpp
|
||||
--- /dev/shm/kdebase/kate/app/kateconfigdialog.cpp 2011-07-09 01:16:52.000000000 -0500
|
||||
+++ /dev/shm/kdebase.new/kate/app/kateconfigdialog.cpp 2011-11-29 11:06:22.000000000 -0600
|
||||
@@ -112,11 +112,32 @@
|
||||
TQWhatsThis::add(cb_fullPath,i18n("If this option is checked, the full document path will be shown in the window caption."));
|
||||
connect( cb_fullPath, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) );
|
||||
|
||||
+ // sort filelist ? ### remove
|
||||
+ cb_sortFiles = new TQCheckBox(bgStartup);
|
||||
+ cb_sortFiles->setText(i18n("Sort &files alphabetically in the file list"));
|
||||
+ cb_sortFiles->setChecked(parent->filelist->sortType() == KateFileList::sortByName);
|
||||
+ TQWhatsThis::add( cb_sortFiles, i18n(
|
||||
+ "If this is checked, the files in the file list will be sorted alphabetically.") );
|
||||
+ connect( cb_sortFiles, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotChanged() ) );
|
||||
|
||||
// GROUP with the one below: "Behavior"
|
||||
bgStartup = new TQButtonGroup( 1, Qt::Horizontal, i18n("&Behavior"), frGeneral );
|
||||
lo->addWidget( bgStartup );
|
||||
|
||||
+ // number of recent files
|
||||
+ TQHBox *hbNrf = new TQHBox( bgStartup );
|
||||
+ TQLabel *lNrf = new TQLabel( i18n("&Number of recent files:"), hbNrf );
|
||||
+ sb_numRecentFiles = new TQSpinBox( 0, 1000, 1, hbNrf );
|
||||
+ sb_numRecentFiles->setValue( mainWindow->fileOpenRecent->maxItems() );
|
||||
+ lNrf->setBuddy( sb_numRecentFiles );
|
||||
+ TQString youwouldnotbelieveit ( i18n(
|
||||
+ "<qt>Sets the number of recent files remembered by Kate.<p><strong>NOTE: </strong>"
|
||||
+ "If you set this lower than the current value, the list will be truncated and "
|
||||
+ "some items forgotten.</qt>") );
|
||||
+ TQWhatsThis::add( lNrf, youwouldnotbelieveit );
|
||||
+ TQWhatsThis::add( sb_numRecentFiles, youwouldnotbelieveit );
|
||||
+ connect( sb_numRecentFiles, TQT_SIGNAL( valueChanged ( int ) ), this, TQT_SLOT( slotChanged() ) );
|
||||
+
|
||||
// sync the konsole ?
|
||||
cb_syncKonsole = new TQCheckBox(bgStartup);
|
||||
cb_syncKonsole->setText(i18n("Sync &terminal emulator with active document"));
|
||||
@@ -389,6 +403,11 @@
|
||||
|
||||
mainWindow->syncKonsole = cb_syncKonsole->isChecked();
|
||||
|
||||
+ mainWindow->filelist->setSortType(cb_sortFiles->isChecked() ? KateFileList::sortByName : KateFileList::sortByID);
|
||||
+
|
||||
+ config->writeEntry( "Number of recent files", sb_numRecentFiles->value() );
|
||||
+ mainWindow->fileOpenRecent->setMaxItems( sb_numRecentFiles->value() );
|
||||
+
|
||||
fileSelConfigPage->apply();
|
||||
|
||||
filelistConfigPage->apply();
|
||||
diff -urN /dev/shm/kdebase/kate/app/kateconfigdialog.h /dev/shm/kdebase.new/kate/app/kateconfigdialog.h
|
||||
--- /dev/shm/kdebase/kate/app/kateconfigdialog.h 2010-08-12 17:35:39.000000000 -0500
|
||||
+++ /dev/shm/kdebase.new/kate/app/kateconfigdialog.h 2011-11-29 11:09:03.000000000 -0600
|
||||
@@ -66,6 +66,8 @@
|
||||
|
||||
TQCheckBox *cb_fullPath;
|
||||
TQCheckBox *cb_syncKonsole;
|
||||
+ TQCheckBox *cb_sortFiles;
|
||||
+ TQSpinBox *sb_numRecentFiles;
|
||||
TQCheckBox *cb_modNotifications;
|
||||
TQCheckBox *cb_saveMetaInfos;
|
||||
TQSpinBox *sb_daysMetaInfos;
|
||||
diff -urN /dev/shm/kdebase/kate/app/katemainwindow.cpp /dev/shm/kdebase.new/kate/app/katemainwindow.cpp
|
||||
--- /dev/shm/kdebase/kate/app/katemainwindow.cpp 2011-07-09 01:16:52.000000000 -0500
|
||||
+++ /dev/shm/kdebase.new/kate/app/katemainwindow.cpp 2011-11-29 11:10:05.000000000 -0600
|
||||
@@ -412,6 +412,7 @@
|
||||
|
||||
m_viewManager->setShowFullPath(config->readBoolEntry("Show Full Path in Title", false));
|
||||
|
||||
+ fileOpenRecent->setMaxItems( config->readNumEntry("Number of recent files", fileOpenRecent->maxItems() ) );
|
||||
fileOpenRecent->loadEntries(config, "Recent Files");
|
||||
|
||||
fileselector->readConfig(config, "fileselector");
|
@ -1,45 +0,0 @@
|
||||
diff -rcb kdebase.ORI/kdesu/kdesu/sudlg.cpp kdebase/kdesu/kdesu/sudlg.cpp
|
||||
*** kdebase.ORI/kdesu/kdesu/sudlg.cpp 2010-12-17 22:55:07.725798945 +0100
|
||||
--- kdebase/kdesu/kdesu/sudlg.cpp 2010-12-17 22:55:49.378797283 +0100
|
||||
***************
|
||||
*** 15,21 ****
|
||||
#include "sudlg.h"
|
||||
|
||||
KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
|
||||
! : KPasswordDialog(Password, enableKeep, (withIgnoreButton ? User1:NoDefault), icon)
|
||||
{
|
||||
KConfig* config = KGlobal::config();
|
||||
config->setGroup("super-user-command");
|
||||
--- 15,21 ----
|
||||
#include "sudlg.h"
|
||||
|
||||
KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton)
|
||||
! : KPasswordDialog(Password, enableKeep, 0, icon)
|
||||
{
|
||||
KConfig* config = KGlobal::config();
|
||||
config->setGroup("super-user-command");
|
||||
***************
|
||||
*** 34,45 ****
|
||||
} else {
|
||||
if (m_User == "root") {
|
||||
prompt = i18n("The action you requested needs root privileges. "
|
||||
! "Please enter root's password below or click "
|
||||
! "Ignore to continue with your current privileges.");
|
||||
} else {
|
||||
prompt = i18n("The action you requested needs additional privileges. "
|
||||
! "Please enter the password for \"%1\" below or click "
|
||||
! "Ignore to continue with your current privileges.").arg(static_cast<const char *>(m_User));
|
||||
}
|
||||
}
|
||||
setPrompt(prompt);
|
||||
--- 34,43 ----
|
||||
} else {
|
||||
if (m_User == "root") {
|
||||
prompt = i18n("The action you requested needs root privileges. "
|
||||
! "Please enter root's password below.");
|
||||
} else {
|
||||
prompt = i18n("The action you requested needs additional privileges. "
|
||||
! "Please enter the password for \"%1\" below.").arg(static_cast<const char *>(m_User));
|
||||
}
|
||||
}
|
||||
setPrompt(prompt);
|
@ -1,11 +0,0 @@
|
||||
--- kdebase/kdesu/kdesu/kdesu.cpp.orig 2011-10-26 21:06:48.000000000 +0200
|
||||
+++ kdebase/kdesu/kdesu/kdesu.cpp 2012-01-01 16:54:11.468303046 +0100
|
||||
@@ -274,7 +274,7 @@
|
||||
|
||||
// Try to exec the command with kdesud.
|
||||
bool keep = !args->isSet("n") && have_daemon;
|
||||
- bool terminal = true;
|
||||
+ bool terminal = args->isSet("t");
|
||||
bool new_dcop = args->isSet("newdcop");
|
||||
bool withIgnoreButton = args->isSet("ignorebutton");
|
||||
|
@ -1,43 +0,0 @@
|
||||
diff -u -r kdebase.orig/config.h.cmake kdebase/config.h.cmake
|
||||
--- kdebase.orig/config.h.cmake 2011-10-30 00:02:15.000000000 +0300
|
||||
+++ kdebase/config.h.cmake 2011-11-19 00:59:26.088061733 +0200
|
||||
@@ -114,6 +114,7 @@
|
||||
#cmakedefine HAVE_SYSINFO 1
|
||||
#cmakedefine HAVE_STRNLEN 1
|
||||
#cmakedefine HAVE_GETIFADDRS 1
|
||||
+#cmakedefine HAVE_CRYPT 1
|
||||
|
||||
#cmakedefine HAVE_SETUSERCONTEXT 1
|
||||
#cmakedefine HAVE_GETUSERSHELL 1
|
||||
diff -u -r kdebase.orig/kdm/backend/CMakeLists.txt kdebase/kdm/backend/CMakeLists.txt
|
||||
--- kdebase.orig/kdm/backend/CMakeLists.txt 2011-09-03 22:32:00.000000000 +0300
|
||||
+++ kdebase/kdm/backend/CMakeLists.txt 2011-11-19 01:05:03.820839491 +0200
|
||||
@@ -43,6 +43,6 @@
|
||||
process.c protodpy.c reset.c resource.c rpcauth.c
|
||||
server.c session.c sessreg.c socket.c streams.c
|
||||
util.c xdmauth.c xdmcp.c
|
||||
- LINK X11 ${XAU_LIBRARIES} ${DBUS_TQT_LIBRARIES} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
+ LINK X11 ${XAU_LIBRARIES} ${DBUS_TQT_LIBRARIES} ${CRYPT_LIBRARY} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
diff -u -r kdebase.orig/kdm/ConfigureChecks.cmake kdebase/kdm/ConfigureChecks.cmake
|
||||
--- kdebase.orig/kdm/ConfigureChecks.cmake 2011-03-16 22:49:38.000000000 +0200
|
||||
+++ kdebase/kdm/ConfigureChecks.cmake 2011-11-19 01:05:40.426381860 +0200
|
||||
@@ -27,6 +27,16 @@
|
||||
check_function_exists( auth_timeok HAVE_AUTH_TIMEOK )
|
||||
tde_restore( CMAKE_REQUIRED_LIBRARIES )
|
||||
|
||||
+check_function_exists( crypt LIBC_HAVE_CRYPT )
|
||||
+if( LIBC_HAVE_CRYPT )
|
||||
+ set( HAVE_CRYPT 1 CACHE INTERNAL "" FORCE )
|
||||
+else( )
|
||||
+ check_library_exists( crypt crypt "" HAVE_CRYPT )
|
||||
+ if( HAVE_CRYPT )
|
||||
+ set( CRYPT_LIBRARY crypt )
|
||||
+ endif( )
|
||||
+endif( )
|
||||
+
|
||||
check_include_file( lastlog.h HAVE_LASTLOG_H )
|
||||
check_include_file( termio.h HAVE_TERMIO_H )
|
||||
|
||||
|
@ -1,29 +0,0 @@
|
||||
--- kicker/applets/launcher/easyvector.h
|
||||
+++ kicker/applets/launcher/easyvector.h 2012-04-05 17:33:50.320708865 -0500
|
||||
@@ -87,7 +87,7 @@
|
||||
template < class VALUE, bool CHECKINDEX >
|
||||
void EasyVector< VALUE, CHECKINDEX >::eraseAt(Index index)
|
||||
{ _checkIndex(index);
|
||||
- erase(this->begin()+index);
|
||||
+ this->erase(this->begin()+index);
|
||||
}
|
||||
|
||||
|
||||
@@ -108,7 +108,7 @@
|
||||
this->push_back(value);
|
||||
return;
|
||||
}
|
||||
- insert(this->begin()+index,value);
|
||||
+ this->insert(this->begin()+index,value);
|
||||
}
|
||||
|
||||
|
||||
@@ -116,7 +116,7 @@
|
||||
void EasyVector< VALUE, CHECKINDEX >::insertAt(EasyVector< VALUE, CHECKINDEX >::Index index,const EasyVector< VALUE, CHECKINDEX > &v)
|
||||
{ index=_convertInsertIndex(index);
|
||||
_checkInsertIndex(index);
|
||||
- insert(this->begin()+index,v.begin(),v.end());
|
||||
+ this->insert(this->begin()+index,v.begin(),v.end());
|
||||
}
|
||||
|
||||
|
@ -1,442 +0,0 @@
|
||||
diff -ur kdebase/kicker/kicker/buttons/knewbutton.cpp kdebase1/kicker/kicker/buttons/knewbutton.cpp
|
||||
--- kdebase/kicker/kicker/buttons/knewbutton.cpp 2011-08-11 01:25:50.000000000 -0400
|
||||
+++ kdebase1/kicker/kicker/buttons/knewbutton.cpp 2011-11-18 12:54:22.380404540 -0500
|
||||
@@ -55,26 +55,28 @@
|
||||
: KButton( parent ),
|
||||
m_oldPos(0,0)
|
||||
{
|
||||
+
|
||||
+ setTitle(i18n("K Menu"));
|
||||
Q_ASSERT( !m_self );
|
||||
m_self = this;
|
||||
- m_hoverTimer = -1;
|
||||
m_openTimer = -1;
|
||||
- m_active = false;
|
||||
+ m_hoverTimer = -1;
|
||||
m_mouseInside = false;
|
||||
m_drag = false;
|
||||
-
|
||||
- setIconAlignment((TQ_Alignment)(AlignTop|AlignRight));
|
||||
- setAcceptDrops(true);
|
||||
- setIcon("kmenu-suse");
|
||||
- setDrawArrow(false);
|
||||
-
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
|
||||
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
|
||||
- m_movie->connectStatus(TQT_TQOBJECT(this), TQT_SLOT(slotStatus(int)));
|
||||
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
|
||||
-
|
||||
+
|
||||
+ setIcon("kmenu");
|
||||
+ setIcon(KickerSettings::customKMenuIcon());
|
||||
+
|
||||
TQApplication::desktop()->screen()->installEventFilter(this);
|
||||
- setMouseTracking(true);
|
||||
+
|
||||
+ if (KickerSettings::showKMenuText())
|
||||
+ {
|
||||
+ setButtonText(KickerSettings::kMenuText());
|
||||
+ setFont(KickerSettings::buttonFont());
|
||||
+ setTextColor(KickerSettings::buttonTextColor());
|
||||
+ }
|
||||
+
|
||||
+ tqrepaint();
|
||||
}
|
||||
|
||||
KNewButton::~KNewButton()
|
||||
@@ -82,28 +84,15 @@
|
||||
if ( m_self == this )
|
||||
m_self = 0;
|
||||
setMouseTracking(false);
|
||||
- delete m_movie;
|
||||
}
|
||||
|
||||
-void KNewButton::slotStatus(int status)
|
||||
-{
|
||||
- if(status == TQMovie::EndOfLoop)
|
||||
- slotStopAnimation();
|
||||
-}
|
||||
|
||||
-TQColor KNewButton::borderColor() const
|
||||
+void KNewButton::drawButton(TQPainter *p)
|
||||
{
|
||||
- TQImage img = m_active_pixmap.convertToImage();
|
||||
-
|
||||
- for (int i = 0; i < img.width(); ++i) {
|
||||
- QRgb rgb = img.pixel(orientation() == Qt::Horizontal ? img.width() - i - 1 :
|
||||
- i, 2);
|
||||
-
|
||||
- if (tqGreen(rgb) > 0x50)
|
||||
- return rgb;
|
||||
- }
|
||||
-
|
||||
- return img.pixel( orientation() == Qt::Horizontal ? img.width() - 2 : 2, 2);
|
||||
+ if (KickerSettings::showDeepButtons())
|
||||
+ PanelPopupButton::drawDeepButton(p);
|
||||
+ else
|
||||
+ PanelPopupButton::drawButton(p);
|
||||
}
|
||||
|
||||
void KNewButton::show()
|
||||
@@ -111,103 +100,12 @@
|
||||
KButton::show();
|
||||
|
||||
if (KickerSettings::firstRun()) {
|
||||
- TQTimer::singleShot(500,this,TQT_SLOT(slotExecMenu()));
|
||||
+ TQTimer::singleShot(0,this,TQT_SLOT(slotExecMenu()));
|
||||
KickerSettings::setFirstRun(false);
|
||||
KickerSettings::writeConfig();
|
||||
}
|
||||
}
|
||||
|
||||
-void KNewButton::updateMovie()
|
||||
-{
|
||||
- m_oldPos = TQPoint( -1, -1 );
|
||||
- drawEye();
|
||||
-
|
||||
- if (!m_active && m_movie->running())
|
||||
- m_movie->pause();
|
||||
-}
|
||||
-
|
||||
-void KNewButton::setPopupDirection(KPanelApplet::Direction d)
|
||||
-{
|
||||
- KButton::setPopupDirection(d);
|
||||
-
|
||||
- delete m_movie;
|
||||
-
|
||||
- switch (d) {
|
||||
- case KPanelApplet::Left:
|
||||
- setIconAlignment((TQ_Alignment)(AlignTop|AlignLeft));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- setIconAlignment((TQ_Alignment)(AlignTop|AlignRight));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_vertical.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- setIconAlignment((TQ_Alignment)(AlignTop|AlignHCenter));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_basic.mng"));
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- setIconAlignment((TQ_Alignment)(AlignBottom|AlignHCenter));
|
||||
- m_movie = new TQMovie(locate("data", "kicker/pics/kmenu_flipped.mng"));
|
||||
- }
|
||||
-
|
||||
- m_movie->connectUpdate(this, TQT_SLOT(updateMovie()));
|
||||
- m_movie->connectStatus(TQT_TQOBJECT(this), TQT_SLOT(slotStatus(int)));
|
||||
- m_movie->connectResize(this, TQT_SLOT(slotSetSize(const TQSize&)));
|
||||
-}
|
||||
-
|
||||
-void KNewButton::slotSetSize(const TQSize& s)
|
||||
-{
|
||||
- m_iconSize = s;
|
||||
-}
|
||||
-
|
||||
-double KNewButton::buttonScaleFactor(const TQSize& s) const
|
||||
-{
|
||||
- double sf = 1.0;
|
||||
-
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- case KPanelApplet::Right:
|
||||
-// sf = kMin(double(s.width()) / m_iconSize.height(), double(s.height()) / m_iconSize.width());
|
||||
-// break;
|
||||
- case KPanelApplet::Up:
|
||||
- case KPanelApplet::Down:
|
||||
- sf = kMin(double(s.width()) / m_iconSize.width(), double(s.height()) / m_iconSize.height());
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- if (sf > 0.8) sf = 1.0;
|
||||
- return sf;
|
||||
-}
|
||||
-
|
||||
-int KNewButton::widthForHeight(int height) const
|
||||
-{
|
||||
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(m_iconSize.width(), height));
|
||||
-
|
||||
- if (!m_movie->running() && height != m_active_pixmap.height())
|
||||
- {
|
||||
- KNewButton* that = const_cast<KNewButton*>(this);
|
||||
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
|
||||
- }
|
||||
-
|
||||
- return r;
|
||||
-}
|
||||
-
|
||||
-int KNewButton::preferredDimension(int panelDim) const
|
||||
-{
|
||||
- return kMax(m_icon.width(), m_icon.height());
|
||||
-}
|
||||
-
|
||||
-int KNewButton::heightForWidth(int width) const
|
||||
-{
|
||||
- int r = m_iconSize.width() * buttonScaleFactor(TQSize(width, m_iconSize.height()));
|
||||
- if (!m_movie->running() && width != m_active_pixmap.width())
|
||||
- {
|
||||
- KNewButton* that = const_cast<KNewButton*>(this);
|
||||
- TQTimer::singleShot(0, that, TQT_SLOT(slotStopAnimation()));
|
||||
- }
|
||||
- return r;
|
||||
-}
|
||||
-
|
||||
bool KNewButton::eventFilter(TQObject *o, TQEvent *e)
|
||||
{
|
||||
if (e->type() == TQEvent::MouseButtonRelease ||
|
||||
@@ -223,75 +121,9 @@
|
||||
}
|
||||
}
|
||||
|
||||
- if (KickerSettings::kickoffDrawGeekoEye() && e->type() == TQEvent::MouseMove)
|
||||
- {
|
||||
- TQMouseEvent *me = TQT_TQMOUSEEVENT(e);
|
||||
- if ((me->state() & Qt::MouseButtonMask) == Qt::NoButton)
|
||||
- drawEye();
|
||||
- }
|
||||
-
|
||||
return KButton::eventFilter(o, e);
|
||||
}
|
||||
|
||||
-void KNewButton::drawEye()
|
||||
-{
|
||||
-#define eye_x 62
|
||||
-#define eye_y 13
|
||||
- TQPoint mouse = TQCursor::pos();
|
||||
- TQPoint me = mapToGlobal(TQPoint(eye_x, eye_y));
|
||||
- double a = atan2(mouse.y() - me.y(), mouse.x() - me.x());
|
||||
- int dx = int(2.1 * cos(a));
|
||||
- int dy = int(2.1 * sin(a));
|
||||
-
|
||||
- TQPoint newpos(eye_x+dx,eye_y+dy);
|
||||
- if (newpos!=m_oldPos) {
|
||||
- m_oldPos = newpos;
|
||||
- TQPixmap pixmap = m_active_pixmap;
|
||||
-
|
||||
- double sf = 1.0;
|
||||
-
|
||||
- if(!m_movie->framePixmap().isNull())
|
||||
- {
|
||||
- pixmap = m_movie->framePixmap();
|
||||
- pixmap.detach();
|
||||
- m_iconSize = pixmap.size();
|
||||
- sf = buttonScaleFactor(size());
|
||||
-
|
||||
- if (KickerSettings::kickoffDrawGeekoEye()) {
|
||||
- TQPainter p(&pixmap);
|
||||
- p.setPen(white);
|
||||
- p.setBrush(white);
|
||||
- // p.setPen(TQColor(110,185,55));
|
||||
- p.drawRect(eye_x+dx, eye_y+dy, 2, 2);
|
||||
- p. end();
|
||||
- }
|
||||
- }
|
||||
-
|
||||
- TQWMatrix matrix;
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- matrix.scale(sf, -sf);
|
||||
- matrix.rotate(90);
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- matrix.scale(sf, sf);
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- matrix.scale(sf, -sf);
|
||||
- matrix.rotate(90);
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- matrix.scale(sf, sf);
|
||||
- break;
|
||||
- }
|
||||
- m_active_pixmap = pixmap.xForm(matrix);
|
||||
-
|
||||
- tqrepaint(false);
|
||||
- }
|
||||
-#undef eye_x
|
||||
-#undef eye_y
|
||||
-}
|
||||
-
|
||||
void KNewButton::enterEvent(TQEvent* e)
|
||||
{
|
||||
KButton::enterEvent(e);
|
||||
@@ -315,15 +147,8 @@
|
||||
}
|
||||
|
||||
m_active = true;
|
||||
- m_movie->unpause();
|
||||
- m_movie->restart();
|
||||
}
|
||||
|
||||
-void KNewButton::rewindMovie()
|
||||
-{
|
||||
- m_oldPos = TQPoint( -1, -1 );
|
||||
- m_movie->unpause();
|
||||
-}
|
||||
|
||||
void KNewButton::dragEnterEvent(TQDragEnterEvent* /*e*/)
|
||||
{
|
||||
@@ -369,31 +194,12 @@
|
||||
}
|
||||
}
|
||||
|
||||
-void KNewButton::slotStopAnimation()
|
||||
-{
|
||||
- m_active = false;
|
||||
- m_movie->pause();
|
||||
- m_movie->restart();
|
||||
- TQTimer::singleShot(200, this, TQT_SLOT(rewindMovie()));
|
||||
-}
|
||||
-
|
||||
-const TQPixmap& KNewButton::labelIcon() const
|
||||
-{
|
||||
- return m_active_pixmap;
|
||||
-}
|
||||
-
|
||||
void KNewButton::slotExecMenu()
|
||||
{
|
||||
- if (m_openTimer != -1)
|
||||
- killTimer(m_openTimer);
|
||||
-
|
||||
- m_openTimer = startTimer(TQApplication::doubleClickInterval() * 3);
|
||||
|
||||
if (m_active)
|
||||
{
|
||||
m_active = false;
|
||||
- m_movie->pause();
|
||||
- m_movie->restart();
|
||||
}
|
||||
|
||||
KButton::slotExecMenu();
|
||||
@@ -401,40 +207,12 @@
|
||||
assert(!KickerTip::tippingEnabled());
|
||||
assert(dynamic_cast<KMenu*>(m_popup));
|
||||
|
||||
- disconnect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()), this,
|
||||
- TQT_SLOT(slotStopAnimation()));
|
||||
- connect(dynamic_cast<KMenu*>(m_popup), TQT_SIGNAL(aboutToHide()),
|
||||
- TQT_SLOT(slotStopAnimation()));
|
||||
-
|
||||
m_popup->move(KickerLib::popupPosition(popupDirection(), m_popup, this));
|
||||
// I wish KMenu would properly done itself when it closes. But it doesn't.
|
||||
|
||||
- bool useEffect = true; // could be TQApplication::isEffectEnabled()
|
||||
- useEffect = false; // too many TQt bugs to be useful
|
||||
- if (m_drag)
|
||||
- useEffect = false;
|
||||
-
|
||||
m_drag = false; // once is enough
|
||||
|
||||
- if (useEffect)
|
||||
- {
|
||||
- switch (popupDirection()) {
|
||||
- case KPanelApplet::Left:
|
||||
- qScrollEffect(m_popup, TQEffects::LeftScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Up:
|
||||
- qScrollEffect(m_popup, TQEffects::UpScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Right:
|
||||
- qScrollEffect(m_popup, TQEffects::RightScroll);
|
||||
- break;
|
||||
- case KPanelApplet::Down:
|
||||
- qScrollEffect(m_popup, TQEffects::DownScroll);
|
||||
- break;
|
||||
- }
|
||||
- }
|
||||
- else
|
||||
- static_cast<KMenu*>(m_popup)->show();
|
||||
+ static_cast<KMenu*>(m_popup)->show();
|
||||
}
|
||||
|
||||
void KNewButton::timerEvent(TQTimerEvent* e)
|
||||
@@ -447,9 +225,4 @@
|
||||
killTimer(m_hoverTimer);
|
||||
m_hoverTimer = -1;
|
||||
}
|
||||
- if (e->timerId() == m_openTimer)
|
||||
- {
|
||||
- killTimer(m_openTimer);
|
||||
- m_openTimer = -1;
|
||||
- }
|
||||
}
|
||||
diff -ur kdebase/kicker/kicker/buttons/knewbutton.h kdebase1/kicker/kicker/buttons/knewbutton.h
|
||||
--- kdebase/kicker/kicker/buttons/knewbutton.h 2011-03-12 01:58:13.000000000 -0500
|
||||
+++ kdebase1/kicker/kicker/buttons/knewbutton.h 2011-11-18 09:31:03.163665964 -0500
|
||||
@@ -28,7 +28,6 @@
|
||||
|
||||
#include "kbutton.h"
|
||||
|
||||
-#include <tqmovie.h>
|
||||
#include <tqpoint.h>
|
||||
|
||||
/**
|
||||
@@ -43,25 +42,10 @@
|
||||
~KNewButton();
|
||||
|
||||
static KNewButton *self() { return m_self; }
|
||||
-
|
||||
void loadConfig( const KConfigGroup& config );
|
||||
-
|
||||
- virtual const TQPixmap& labelIcon() const;
|
||||
-
|
||||
- virtual int widthForHeight(int height) const;
|
||||
- virtual int preferredDimension(int panelDim) const;
|
||||
- virtual int heightForWidth(int width) const;
|
||||
-
|
||||
TQColor borderColor() const;
|
||||
+ //virtual void setPopupDirection(KPanelApplet::Direction d);
|
||||
|
||||
- virtual void setPopupDirection(KPanelApplet::Direction d);
|
||||
-
|
||||
-private slots:
|
||||
- void slotStatus(int);
|
||||
- void slotSetSize(const TQSize&);
|
||||
- void slotStopAnimation();
|
||||
- void rewindMovie();
|
||||
- void updateMovie();
|
||||
|
||||
protected:
|
||||
virtual void show();
|
||||
@@ -78,17 +62,15 @@
|
||||
void timerEvent(TQTimerEvent*);
|
||||
|
||||
private:
|
||||
- void drawEye();
|
||||
- double buttonScaleFactor(const TQSize& s) const;
|
||||
|
||||
- TQMovie* m_movie;
|
||||
+ void drawButton(TQPainter *p);
|
||||
TQPixmap m_active_pixmap;
|
||||
TQPoint m_oldPos;
|
||||
TQSize m_iconSize;
|
||||
TQRect m_sloppyRegion;
|
||||
- int m_hoverTimer;
|
||||
int m_openTimer;
|
||||
- bool m_active;
|
||||
+ int m_hoverTimer;
|
||||
+ bool m_active;
|
||||
bool m_mouseInside;
|
||||
bool m_drag;
|
||||
|
||||
diff -ur kdebase/kicker/kicker/ui/k_new_mnu.cpp kdebase1/kicker/kicker/ui/k_new_mnu.cpp
|
||||
--- kdebase/kicker/kicker/ui/k_new_mnu.cpp 2011-08-11 01:25:49.000000000 -0400
|
||||
+++ kdebase1/kicker/kicker/ui/k_new_mnu.cpp 2011-11-18 15:02:51.565689119 -0500
|
||||
@@ -1700,8 +1700,6 @@
|
||||
TQPixmap pix( 64, footer->height() );
|
||||
TQPainter p( &pix );
|
||||
p.fillRect( 0, 0, 64, footer->height(), m_branding->tqcolorGroup().brush( TQColorGroup::Base ) );
|
||||
- p.fillRect( 0, m_orientation == BottomUp ? footer->height() - 2 : 0,
|
||||
- 64, 3, KNewButton::self()->borderColor() );
|
||||
p.end();
|
||||
footer->setPaletteBackgroundPixmap( pix );
|
||||
}
|
||||
@@ -3500,7 +3498,8 @@
|
||||
}
|
||||
m_systemView->insertItem( iconName, userLabel.isEmpty() ? label : userLabel,
|
||||
descr, "system:/media/" + name, nId++, -1 );
|
||||
-
|
||||
+ ++it;
|
||||
+ ++it;
|
||||
++it; // skip separator
|
||||
}
|
||||
}
|
@ -1,40 +0,0 @@
|
||||
--- kdebase/kioslave/man/kio_man.cpp.ORI 2011-12-03 00:22:28.400423296 +0100
|
||||
+++ kdebase/kioslave/man/kio_man.cpp 2011-12-03 00:25:59.127173102 +0100
|
||||
@@ -569,20 +569,24 @@
|
||||
}
|
||||
lastdir = filename.left(filename.findRev('/'));
|
||||
|
||||
- myStdStream = TQString::null;
|
||||
- KProcess proc;
|
||||
- /* TODO: detect availability of 'man --recode' so that this can go
|
||||
- * upstream */
|
||||
- proc << "man" << "--recode" << "UTF-8" << filename;
|
||||
-
|
||||
- TQApplication::connect(&proc, TQT_SIGNAL(receivedStdout (KProcess *, char *, int)),
|
||||
- this, TQT_SLOT(slotGetStdOutputUtf8(KProcess *, char *, int)));
|
||||
- proc.start(KProcess::Block, KProcess::All);
|
||||
-
|
||||
- const TQCString cstr=myStdStream.utf8();
|
||||
- const int len = cstr.size()-1;
|
||||
+ TQIODevice *fd= KFilterDev::deviceForFile(filename);
|
||||
+
|
||||
+ if ( !fd || !fd->open(IO_ReadOnly))
|
||||
+ {
|
||||
+ delete fd;
|
||||
+ return 0;
|
||||
+ }
|
||||
+ TQByteArray array(fd->readAll());
|
||||
+ kdDebug(7107) << "read " << array.size() << endl;
|
||||
+ fd->close();
|
||||
+ delete fd;
|
||||
+
|
||||
+ if (array.isEmpty())
|
||||
+ return 0;
|
||||
+
|
||||
+ const int len = array.size();
|
||||
buf = new char[len + 4];
|
||||
- tqmemmove(buf + 1, cstr.data(), len);
|
||||
+ tqmemmove(buf + 1, array.data(), len);
|
||||
buf[0]=buf[len]='\n'; // Start and end with a end of line
|
||||
buf[len+1]=buf[len+2]='\0'; // Two NUL characters at end
|
||||
}
|
@ -1,19 +0,0 @@
|
||||
diff -urN /dev/shm/kdebase/konqueror/listview/konq_listviewwidget.cc /dev/shm/kdebase.new/konqueror/listview/konq_listviewwidget.cc
|
||||
--- /dev/shm/kdebase/konqueror/listview/konq_listviewwidget.cc 2011-08-11 00:25:51.000000000 -0500
|
||||
+++ /dev/shm/kdebase.new/konqueror/listview/konq_listviewwidget.cc 2011-12-03 20:55:00.000000000 -0600
|
||||
@@ -1009,10 +1009,11 @@
|
||||
// gather pixmap
|
||||
TQPixmap *pix = new TQPixmap(*(_item->pixmap(0)));
|
||||
|
||||
- // call the icon effect
|
||||
- KIconEffect::visualActivate(viewport(), rect, pix);
|
||||
-
|
||||
- delete(pix);
|
||||
+ // call the icon effect if enabled
|
||||
+ if (KGlobalSettings::showKonqIconActivationEffect() == true) {
|
||||
+ KIconEffect::visualActivate(viewport(), rect, pix);
|
||||
+ delete(pix);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
else
|
@ -1,160 +0,0 @@
|
||||
diff -urN /dev/shm/kdebase/kcontrol/konqhtml/advancedTabDialog.cpp /dev/shm/kdebase.new/kcontrol/konqhtml/advancedTabDialog.cpp
|
||||
--- kdebase/kcontrol/konqhtml/advancedTabDialog.cpp 2011-03-12 00:57:45.000000000 -0600
|
||||
+++ kdebase.new/kcontrol/konqhtml/advancedTabDialog.cpp 2011-12-03 17:25:40.297586593 -0600
|
||||
@@ -58,7 +58,6 @@
|
||||
layout->addSpacing( 20 );
|
||||
layout->addStretch();
|
||||
|
||||
- connect(m_advancedWidget->m_pNewTabsInBackground, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pOpenAfterCurrentPage, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pTabConfirm, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
connect(m_advancedWidget->m_pTabCloseActivatePrevious, TQT_SIGNAL(clicked()), this, TQT_SLOT(changed()));
|
||||
@@ -76,7 +75,6 @@
|
||||
void advancedTabDialog::load()
|
||||
{
|
||||
m_pConfig->setGroup("FMSettings");
|
||||
- m_advancedWidget->m_pNewTabsInBackground->setChecked( ! (m_pConfig->readBoolEntry( "NewTabsInFront", false )) );
|
||||
m_advancedWidget->m_pOpenAfterCurrentPage->setChecked( m_pConfig->readBoolEntry( "OpenAfterCurrentPage", false ) );
|
||||
m_advancedWidget->m_pPermanentCloseButton->setChecked( m_pConfig->readBoolEntry( "PermanentCloseButton", false ) );
|
||||
m_advancedWidget->m_pKonquerorTabforExternalURL->setChecked( m_pConfig->readBoolEntry( "KonquerorTabforExternalURL", false ) );
|
||||
@@ -92,7 +90,6 @@
|
||||
void advancedTabDialog::save()
|
||||
{
|
||||
m_pConfig->setGroup("FMSettings");
|
||||
- m_pConfig->writeEntry( "NewTabsInFront", !(m_advancedWidget->m_pNewTabsInBackground->isChecked()) );
|
||||
m_pConfig->writeEntry( "OpenAfterCurrentPage", m_advancedWidget->m_pOpenAfterCurrentPage->isChecked() );
|
||||
m_pConfig->writeEntry( "PermanentCloseButton", m_advancedWidget->m_pPermanentCloseButton->isChecked() );
|
||||
m_pConfig->writeEntry( "KonquerorTabforExternalURL", m_advancedWidget->m_pKonquerorTabforExternalURL->isChecked() );
|
||||
diff -urN /dev/shm/kdebase/kcontrol/konqhtml/advancedTabOptions.ui /dev/shm/kdebase.new/kcontrol/konqhtml/advancedTabOptions.ui
|
||||
--- kdebase/kcontrol/konqhtml/advancedTabOptions.ui 2011-03-12 00:57:45.000000000 -0600
|
||||
+++ kdebase.new/kcontrol/konqhtml/advancedTabOptions.ui 2011-12-03 17:24:25.987334444 -0600
|
||||
@@ -51,17 +51,6 @@
|
||||
</property>
|
||||
<widget class="TQCheckBox">
|
||||
<property name="name">
|
||||
- <cstring>m_pNewTabsInBackground</cstring>
|
||||
- </property>
|
||||
- <property name="text">
|
||||
- <string>O&pen new tabs in the background</string>
|
||||
- </property>
|
||||
- <property name="whatsThis" stdset="0">
|
||||
- <string>This will open a new tab in the background, instead of in the foreground.</string>
|
||||
- </property>
|
||||
- </widget>
|
||||
- <widget class="TQCheckBox">
|
||||
- <property name="name">
|
||||
<cstring>m_pOpenAfterCurrentPage</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
diff -urN /dev/shm/kdebase/konqueror/konq_guiclients.cc /dev/shm/kdebase.new/konqueror/konq_guiclients.cc
|
||||
--- kdebase/konqueror/konq_guiclients.cc 2011-08-11 00:25:53.000000000 -0500
|
||||
+++ kdebase.new/konqueror/konq_guiclients.cc 2011-12-03 17:24:25.987334444 -0600
|
||||
@@ -104,8 +104,8 @@
|
||||
openInSameWindow.setAttribute( "name", "sameview" );
|
||||
openInSameWindow.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( openInSameWindow );
|
||||
-
|
||||
- TQDomElement openInWindow = m_doc.createElement( "action" );
|
||||
+
|
||||
+ TQDomElement openInWindow = m_doc.createElement( "action" );
|
||||
openInWindow.setAttribute( "name", "newview" );
|
||||
openInWindow.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( openInWindow );
|
||||
@@ -115,6 +115,11 @@
|
||||
openInTabElement.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( openInTabElement );
|
||||
|
||||
+ TQDomElement openInTabFrontElement = m_doc.createElement( "action" );
|
||||
+ openInTabFrontElement.setAttribute( "name", "openintabfront" );
|
||||
+ openInTabFrontElement.setAttribute( "group", "tabhandling" );
|
||||
+ menu.appendChild( openInTabFrontElement );
|
||||
+
|
||||
TQDomElement separatorElement = m_doc.createElement( "separator" );
|
||||
separatorElement.setAttribute( "group", "tabhandling" );
|
||||
menu.appendChild( separatorElement );
|
||||
diff -urN /dev/shm/kdebase/konqueror/konq_mainwindow.cc /dev/shm/kdebase.new/konqueror/konq_mainwindow.cc
|
||||
--- kdebase/konqueror/konq_mainwindow.cc 2011-08-20 02:14:06.000000000 -0500
|
||||
+++ kdebase.new/konqueror/konq_mainwindow.cc 2011-12-03 17:24:25.994334609 -0600
|
||||
@@ -2726,15 +2726,23 @@
|
||||
openURL( 0L, popupItems.getFirst()->url() );
|
||||
}
|
||||
|
||||
+void KonqMainWindow::slotPopupNewTabAtFront()
|
||||
+{
|
||||
+ KConfig *config = KGlobal::config();
|
||||
+ KConfigGroupSaver cs( config, TQString::fromLatin1("FMSettings") );
|
||||
+ bool openAfterCurrentPage = config->readBoolEntry( "OpenAfterCurrentPage", false );
|
||||
+ popupNewTab(true, openAfterCurrentPage);
|
||||
+}
|
||||
+
|
||||
void KonqMainWindow::slotPopupNewTab()
|
||||
{
|
||||
bool openAfterCurrentPage = KonqSettings::openAfterCurrentPage();
|
||||
bool newTabsInFront = KonqSettings::newTabsInFront();
|
||||
|
||||
- if (KApplication::keyboardMouseState() & TQt::ShiftButton)
|
||||
+ if (KApplication::keyboardMouseState() & ShiftButton)
|
||||
newTabsInFront = !newTabsInFront;
|
||||
|
||||
- popupNewTab(newTabsInFront, openAfterCurrentPage);
|
||||
+ popupNewTab(false, openAfterCurrentPage);
|
||||
}
|
||||
|
||||
void KonqMainWindow::slotPopupNewTabRight()
|
||||
@@ -2754,17 +2762,13 @@
|
||||
KFileItemListIterator it ( popupItems );
|
||||
KonqOpenURLRequest req;
|
||||
req.newTab = true;
|
||||
- req.newTabInFront = false;
|
||||
+ req.newTabInFront = infront;
|
||||
req.openAfterCurrentPage = openAfterCurrentPage;
|
||||
req.args = popupUrlArgs;
|
||||
|
||||
for ( ; it.current(); ++it )
|
||||
{
|
||||
- if ( infront && it.atLast() )
|
||||
- {
|
||||
- req.newTabInFront = true;
|
||||
- }
|
||||
- openURL( 0L, (*it)->url(), TQString::null, req );
|
||||
+ openURL( 0L, (*it)->url(), QString::null, req );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -3926,7 +3930,7 @@
|
||||
reloadShortcut.append(KKey(CTRL + Key_R));
|
||||
m_paReload = new KAction( i18n( "&Reload" ), "reload", reloadShortcut, TQT_TQOBJECT(this), TQT_SLOT( slotReload() ), actionCollection(), "reload" );
|
||||
m_paReloadAllTabs = new KAction( i18n( "&Reload All Tabs" ), "reload_all_tabs", SHIFT+Key_F5, TQT_TQOBJECT(this), TQT_SLOT( slotReloadAllTabs() ), actionCollection(), "reload_all_tabs" );
|
||||
-
|
||||
+
|
||||
m_paReloadStop = new KAction( i18n( "&Reload/Stop" ), "reload", 0, TQT_TQOBJECT(this), TQT_SLOT( slotReloadStop() ), actionCollection(), "reload_stop" );
|
||||
|
||||
m_paUndo = KStdAction::undo( KonqUndoManager::self(), TQT_SLOT( undo() ), actionCollection(), "undo" );
|
||||
@@ -4782,8 +4786,14 @@
|
||||
else
|
||||
tab_new_x = "tab_new_bg" ;
|
||||
|
||||
- actNewTab = new KAction( i18n( "Open in &New Tab" ), tab_new_x, 0, TQT_TQOBJECT(this), TQT_SLOT( slotPopupNewTab() ), konqyMenuClient->actionCollection(), "openintab" );
|
||||
- actNewTab->setToolTip( i18n( "Open the document in a new tab" ) );
|
||||
+ KAction *actNewTab = new KAction( i18n( "Open in &Background Tab" ), "tab_new_bg", 0, TQT_TQOBJECT(this), TQT_SLOT( slotPopupNewTab() ), actionCollection(), "openintab" );
|
||||
+ actNewTab->setStatusText( i18n( "Open the document in a new background tab" ) );
|
||||
+ KAction *actNewTabFront = new KAction( i18n( "Open in &New Tab" ), "tab_new", 0, TQT_TQOBJECT(this), TQT_SLOT( slotPopupNewTabAtFront() ), actionCollection(), "openintabfront" );
|
||||
+ actNewTabFront->setStatusText( i18n( "Open the document in a new foreground tab" ) );
|
||||
+ actNewTab = new KAction( i18n( "Open in &Background Tab" ), tab_new_x, 0, TQT_TQOBJECT(this), TQT_SLOT( slotPopupNewTab() ), konqyMenuClient->actionCollection(), "openintab" );
|
||||
+ actNewTabFront = new KAction( i18n( "Open in &New Tab" ), tab_new_x, 0, TQT_TQOBJECT(this), TQT_SLOT( slotPopupNewTabAtFront() ), konqyMenuClient->actionCollection(), "openintabfront" );
|
||||
+ actNewTab->setToolTip( i18n( "Open the document in a new background tab" ) );
|
||||
+ actNewTabFront->setToolTip( i18n( "Open the document in a new foreground tab" ) );
|
||||
doTabHandling = true;
|
||||
}
|
||||
|
||||
diff -urN /dev/shm/kdebase/konqueror/konq_mainwindow.h /dev/shm/kdebase.new/konqueror/konq_mainwindow.h
|
||||
--- kdebase/konqueror/konq_mainwindow.h 2011-03-12 00:58:18.000000000 -0600
|
||||
+++ kdebase.new/konqueror/konq_mainwindow.h 2011-12-03 17:24:25.995334564 -0600
|
||||
@@ -444,6 +444,7 @@
|
||||
void slotPopupNewWindow();
|
||||
void slotPopupThisWindow();
|
||||
void slotPopupNewTab();
|
||||
+ void slotPopupNewTabAtFront();
|
||||
void slotPopupNewTabRight();
|
||||
void slotPopupPasteTo();
|
||||
void slotRemoveView();
|
@ -1,11 +0,0 @@
|
||||
--- kdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp.ORI 2011-12-10 15:07:43.171011925 +0100
|
||||
+++ kdebase/konqueror/sidebar/trees/dirtree_module/dirtree_module.cpp 2011-12-10 15:07:48.000797355 +0100
|
||||
@@ -400,7 +400,7 @@
|
||||
kdDebug(1201) << this << " KonqSidebarDirTreeModule::slotNewItems " << entries.count() << endl;
|
||||
|
||||
Q_ASSERT(entries.count());
|
||||
- KFileItem * firstItem = const_cast<KFileItemList&>(entries).first(); // qlist sucks for constness
|
||||
+ KFileItem * firstItem = const_cast<KFileItemList&>(entries).last(); // qlist sucks for constness
|
||||
|
||||
// Find parent item - it's the same for all the items
|
||||
KURL dir( firstItem->url().url(-1) );
|
@ -1,41 +0,0 @@
|
||||
diff -urN kdebase/kpersonalizer/kospage.cpp kdebase.new2/kpersonalizer/kospage.cpp
|
||||
--- kdebase/kpersonalizer/kospage.cpp 2011-08-21 02:08:16.000000000 -0500
|
||||
+++ kdebase.new2/kpersonalizer/kospage.cpp 2011-12-22 09:27:39.000000000 -0600
|
||||
@@ -142,7 +142,7 @@
|
||||
ckcmdisplay->writeEntry("macStyle", false, true, true);
|
||||
|
||||
cglobal->setGroup("KDE");
|
||||
- cglobal->writeEntry("SingleClick", true, true, true);
|
||||
+ cglobal->writeEntry("SingleClick", false, true, true);
|
||||
|
||||
claunch->setGroup("FeedbackStyle");
|
||||
claunch->writeEntry("BusyCursor", false);
|
||||
@@ -351,8 +351,8 @@
|
||||
textview_ospage->setText(i18n(
|
||||
"<b>Window activation:</b> <i>Focus on click</i><br>"
|
||||
"<b>Titlebar double-click:</b> <i>Shade window</i><br>"
|
||||
- "<b>Mouse selection:</b> <i>Single click</i><br>"
|
||||
- "<b>Application startup notification:</b> <i>busy cursor</i><br>"
|
||||
+ "<b>Mouse selection:</b> <i>Double click</i><br>"
|
||||
+ "<b>Application startup notification:</b> <i>none</i><br>"
|
||||
"<b>Keyboard scheme:</b> <i>Trinity default</i><br>"
|
||||
));
|
||||
}
|
||||
@@ -376,7 +376,7 @@
|
||||
"<b>Window activation:</b> <i>Focus on click</i><br>"
|
||||
"<b>Titlebar double-click:</b> <i>Maximize window</i><br>"
|
||||
"<b>Mouse selection:</b> <i>Double click</i><br>"
|
||||
- "<b>Application startup notification:</b> <i>busy cursor</i><br>"
|
||||
+ "<b>Application startup notification:</b> <i>none</i><br>"
|
||||
"<b>Keyboard scheme:</b> <i>Windows</i><br>"
|
||||
));
|
||||
}
|
||||
@@ -400,7 +400,7 @@
|
||||
b_MacMenuBar = ckcmdisplay->readBoolEntry("macStyle", false);
|
||||
|
||||
cglobal->setGroup("KDE");
|
||||
- b_SingleClick = cglobal->readBoolEntry("SingleClick", true);
|
||||
+ b_SingleClick = cglobal->readBoolEntry("SingleClick", false);
|
||||
|
||||
claunch->setGroup("FeedbackStyle");
|
||||
b_BusyCursor = claunch->readBoolEntry("BusyCursor", false);
|
@ -1,62 +0,0 @@
|
||||
diff -uNr kdebase-3.5.13.orig/kwin/clients/keramik/CMakeLists.txt kdebase-3.5.13/kwin/clients/keramik/CMakeLists.txt
|
||||
--- kdebase-3.5.13.orig/kwin/clients/keramik/CMakeLists.txt 2012-03-14 12:56:02.567586872 +0200
|
||||
+++ kdebase-3.5.13/kwin/clients/keramik/CMakeLists.txt 2012-03-14 12:50:07.000000000 +0200
|
||||
@@ -42,22 +42,11 @@
|
||||
|
||||
##### tiles.h (header) ##########################
|
||||
|
||||
-set( pics
|
||||
- pics/caption-large-left.png pics/caption-small-right.png
|
||||
- pics/titlebar-center.png pics/titlebutton-square.png
|
||||
- pics/border-left.png pics/caption-large-right.png
|
||||
- pics/grabbar-center.png pics/titlebar-left.png
|
||||
- pics/border-right.png pics/caption-small-center.png
|
||||
- pics/grabbar-left.png pics/titlebar-right.png
|
||||
- pics/caption-large-center.png pics/caption-small-left.png
|
||||
- pics/grabbar-right.png pics/titlebutton-round.png
|
||||
- pics/bottom-left.png pics/bottom-right.png pics/bottom-center.png
|
||||
- pics/titlebutton-square-large.png pics/titlebutton-square-huge.png
|
||||
- pics/titlebutton-round-large.png pics/titlebutton-round-huge.png )
|
||||
+file(GLOB _pics "${CMAKE_CURRENT_SOURCE_DIR}/pics/*.png" )
|
||||
|
||||
add_custom_command( OUTPUT tiles.h
|
||||
- COMMAND ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${pics}
|
||||
- DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${pics} )
|
||||
+ COMMAND ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${_pics}
|
||||
+ DEPENDS ${CMAKE_CURRENT_BINARY_DIR}/embedtool ${_pics} )
|
||||
|
||||
tde_add_executable( embedtool
|
||||
SOURCES embedtool.cpp
|
||||
diff -Naur tdebase-master-orig/CMakeLists.txt tdebase-master/CMakeLists.txt
|
||||
--- tdebase-master-orig/CMakeLists.txt 2012-03-28 09:07:30.000000000 +0200
|
||||
+++ tdebase-master/CMakeLists.txt 2012-04-01 11:41:49.000000000 +0200
|
||||
@@ -27,6 +27,7 @@
|
||||
include( CheckLibraryExists )
|
||||
include( CheckFunctionExists )
|
||||
include( CheckStructHasMember )
|
||||
+include( CheckTypeSize )
|
||||
|
||||
|
||||
##### include our cmake modules #################
|
||||
@@ -150,6 +151,8 @@
|
||||
set( CMAKE_SHARED_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
set( CMAKE_MODULE_LINKER_FLAGS "-Wl,--no-undefined" )
|
||||
|
||||
+check_type_size( "long long" LONG_LONG )
|
||||
+
|
||||
|
||||
##### kdebase directories #######################
|
||||
|
||||
diff -Naur tdebase-master-orig/config.h.cmake tdebase-master/config.h.cmake
|
||||
--- tdebase-master-orig/config.h.cmake 2012-03-28 09:07:30.000000000 +0200
|
||||
+++ tdebase-master/config.h.cmake 2012-04-01 11:45:21.000000000 +0200
|
||||
@@ -3,6 +3,9 @@
|
||||
// konsole
|
||||
#cmakedefine HAVE_PROC_CWD 1
|
||||
|
||||
+// Defined if compiler supports long long type.
|
||||
+#cmakedefine HAVE_LONG_LONG 1
|
||||
+
|
||||
// kdesktop, konsole, kcontrol, kicker
|
||||
#cmakedefine HAVE_XRENDER 1
|
||||
|
@ -1,10 +0,0 @@
|
||||
--- kdebase/kioslave/media/mediamanager/CMakeLists.txt.ORI 2011-11-08 15:00:40.248406596 -0500
|
||||
+++ kdebase/kioslave/media/mediamanager/CMakeLists.txt 2011-11-08 15:00:56.417996538 -0500
|
||||
@@ -20,6 +20,7 @@
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${HAL_INCLUDE_DIRS}
|
||||
+ ${DBUS_TQT_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
@ -1,101 +0,0 @@
|
||||
Index: pagerapplet.cpp
|
||||
===================================================================
|
||||
--- kdebase.ori/kicker/applets/minipager/pagerapplet.cpp (revision 1287351)
|
||||
+++ kdebase/kicker/applets/minipager/pagerapplet.cpp (working copy)
|
||||
@@ -442,6 +442,10 @@
|
||||
{
|
||||
int newDesk;
|
||||
int desktops = KWin::numberOfDesktops();
|
||||
+
|
||||
+
|
||||
+ if(cycleWindow()){
|
||||
+
|
||||
if (m_kwin->numberOfViewports(0).width() * m_kwin->numberOfViewports(0).height() > 1 )
|
||||
desktops = m_kwin->numberOfViewports(0).width() * m_kwin->numberOfViewports(0).height();
|
||||
if (e->delta() < 0)
|
||||
@@ -452,8 +456,9 @@
|
||||
{
|
||||
newDesk = (desktops + m_curDesk - 2) % desktops + 1;
|
||||
}
|
||||
-
|
||||
+
|
||||
slotButtonSelected(newDesk);
|
||||
+ }
|
||||
}
|
||||
|
||||
void KMiniPager::drawButtons()
|
||||
@@ -729,6 +734,7 @@
|
||||
|
||||
showMenu->insertItem(i18n("&Window Thumbnails"), WindowThumbnails);
|
||||
showMenu->insertItem(i18n("&Window Icons"), WindowIcons);
|
||||
+ showMenu->insertItem(i18n("&Cycle on Wheel"), Cycle);
|
||||
|
||||
showMenu->insertTitle(i18n("Text Label"));
|
||||
showMenu->insertItem(i18n("Desktop N&umber"),
|
||||
@@ -760,6 +766,7 @@
|
||||
|
||||
m_contextMenu->setItemChecked(WindowThumbnails, m_settings->preview());
|
||||
m_contextMenu->setItemChecked(WindowIcons, m_settings->icons());
|
||||
+ m_contextMenu->setItemChecked(Cycle, m_settings->cycle());
|
||||
m_contextMenu->setItemEnabled(WindowIcons, m_settings->preview());
|
||||
m_contextMenu->setItemEnabled(RenameDesktop,
|
||||
m_settings->labelType() ==
|
||||
@@ -812,11 +819,12 @@
|
||||
m_settings->setPreview(!m_settings->preview());
|
||||
TaskManager::the()->trackGeometry();
|
||||
break;
|
||||
-
|
||||
+ case Cycle:
|
||||
+ m_settings->setCycle(!m_settings->cycle());
|
||||
+ break;
|
||||
case WindowIcons:
|
||||
m_settings->setIcons(!m_settings->icons());
|
||||
break;
|
||||
-
|
||||
case PagerSettings::EnumBackgroundType::BgPlain + bgOffset:
|
||||
m_settings->setBackgroundType(PagerSettings::EnumBackgroundType::BgPlain);
|
||||
break;
|
||||
Index: pagersettings.kcfg
|
||||
===================================================================
|
||||
--- kdebase.ori/kicker/applets/minipager/pagersettings.kcfg (revision 1287351)
|
||||
+++ kdebase/kicker/applets/minipager/pagersettings.kcfg (working copy)
|
||||
@@ -49,10 +49,15 @@
|
||||
<label>Show desktop preview?</label>
|
||||
<default>true</default>
|
||||
</entry>
|
||||
-
|
||||
+
|
||||
<entry name="Icons" type="Bool">
|
||||
<label>Show window icons in previews?</label>
|
||||
<default>true</default>
|
||||
</entry>
|
||||
+
|
||||
+ <entry name="Cycle" type="Bool">
|
||||
+ <label>Cycle through desktops with wheel?</label>
|
||||
+ <default>true</default>
|
||||
+ </entry>
|
||||
</group>
|
||||
</kcfg>
|
||||
Index: pagerapplet.h
|
||||
===================================================================
|
||||
--- kdebase.ori/kicker/applets/minipager/pagerapplet.h (revision 1287351)
|
||||
+++ kdebase/kicker/applets/minipager/pagerapplet.h (working copy)
|
||||
@@ -64,15 +64,17 @@
|
||||
void setActive( WId active ) { m_activeWindow = active; }
|
||||
WId activeWindow() { return m_activeWindow; }
|
||||
|
||||
- enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails,
|
||||
+ enum ConfigOptions { LaunchExtPager = 96, WindowThumbnails, Cycle,
|
||||
WindowIcons, ConfigureDesktops, RenameDesktop };
|
||||
int labelType() const { return m_settings->labelType(); }
|
||||
|
||||
int bgType() const { return m_settings->backgroundType(); }
|
||||
|
||||
bool desktopPreview() const { return m_settings->preview(); }
|
||||
+ bool cycleWindow() const { return m_settings->cycle(); }
|
||||
bool windowIcons() const { return m_settings->icons(); }
|
||||
|
||||
+
|
||||
Orientation orientation() const { return KPanelApplet::orientation(); }
|
||||
Direction popupDirection() { return KPanelApplet::popupDirection(); }
|
||||
|
@ -1,137 +0,0 @@
|
||||
From 553923b25dc41e2c17ba9038eb225cd3bb9b1770 Mon Sep 17 00:00:00 2001
|
||||
From: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: Fri, 21 Sep 2012 23:27:59 +0000
|
||||
Subject: Forcibly prevent transient override redirect windows from showing up over the lock screen
|
||||
|
||||
This closes Bug 1079
|
||||
---
|
||||
diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
|
||||
index 236bf8a..005ac99 100644
|
||||
--- a/kdesktop/lock/lockdlg.cc
|
||||
+++ b/kdesktop/lock/lockdlg.cc
|
||||
@@ -573,9 +573,19 @@ void PasswordDlg::gplugActivity()
|
||||
|
||||
void PasswordDlg::gplugMsgBox( TQMessageBox::Icon type, const TQString &text )
|
||||
{
|
||||
- TQDialog dialog( this, 0, true, (WFlags)WX11BypassWM );
|
||||
+ TQDialog dialog( this, 0, 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(), "_KDE_WM_MODAL_SYS_NOTIFICATION", False);
|
||||
+ XChangeProperty(tqt_xdisplay(), dialog.winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
|
||||
+ }
|
||||
+ dialog.setCaption(i18n("Authentication Subsystem Notice"));
|
||||
TQFrame *winFrame = new TQFrame( &dialog );
|
||||
- winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
+ if (trinity_desktop_lock_use_system_modal_dialogs)
|
||||
+ winFrame->setFrameStyle( TQFrame::NoFrame );
|
||||
+ else
|
||||
+ winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
winFrame->setLineWidth( 2 );
|
||||
TQVBoxLayout *vbox = new TQVBoxLayout( &dialog );
|
||||
vbox->addWidget( winFrame );
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 2ce7507..5265bc6 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -960,6 +960,27 @@ void LockProcess::createSaverWindow()
|
||||
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
+ // HACK
|
||||
+ // Close all tooltips and notification windows
|
||||
+ {
|
||||
+ Window rootWindow = RootWindow(x11Display(), x11Screen());
|
||||
+ Window parent;
|
||||
+ Window* children = NULL;
|
||||
+ unsigned int noOfChildren = 0;
|
||||
+ XWindowAttributes childAttr;
|
||||
+ Window childTransient;
|
||||
+
|
||||
+ if (XQueryTree(x11Display(), rootWindow, &rootWindow, &parent, &children, &noOfChildren) && noOfChildren>0 ) {
|
||||
+ for (unsigned int i=0; i<noOfChildren; i++) {
|
||||
+ if (XGetWindowAttributes(x11Display(), children[i], &childAttr) && XGetTransientForHint(x11Display(), children[i], &childTransient)) {
|
||||
+ if ((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
|
||||
+ XUnmapWindow(x11Display(), children[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
kdDebug(1204) << "Saver window Id: " << winId() << endl;
|
||||
}
|
||||
|
||||
@@ -2162,9 +2183,19 @@ void LockProcess::unlockXF86()
|
||||
|
||||
void LockProcess::msgBox( TQMessageBox::Icon type, const TQString &txt )
|
||||
{
|
||||
- TQDialog box( 0, "messagebox", true, (WFlags)WX11BypassWM );
|
||||
+ TQDialog box( 0, "messagebox", 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(), "_KDE_WM_MODAL_SYS_NOTIFICATION", False);
|
||||
+ XChangeProperty(tqt_xdisplay(), box.winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
|
||||
+ }
|
||||
+ box.setCaption(i18n("Authentication Subsystem Notice"));
|
||||
TQFrame *winFrame = new TQFrame( &box );
|
||||
- winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
+ if (trinity_desktop_lock_use_system_modal_dialogs)
|
||||
+ winFrame->setFrameStyle( TQFrame::NoFrame );
|
||||
+ else
|
||||
+ winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
winFrame->setLineWidth( 2 );
|
||||
TQLabel *label1 = new TQLabel( winFrame );
|
||||
label1->setPixmap( TQMessageBox::standardIcon( type ) );
|
||||
@@ -2264,8 +2295,10 @@ void LockProcess::windowAdded( WId w, bool managed )
|
||||
int y = XDisplayHeight( tqt_xdisplay(), tqt_xscreen()) - attr_geom.height;
|
||||
if( managed ) {
|
||||
XSetWindowAttributes attr;
|
||||
- attr.override_redirect = True;
|
||||
- XChangeWindowAttributes( tqt_xdisplay(), w, CWOverrideRedirect, &attr );
|
||||
+ if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
+ attr.override_redirect = True;
|
||||
+ XChangeWindowAttributes( tqt_xdisplay(), w, CWOverrideRedirect, &attr );
|
||||
+ }
|
||||
XReparentWindow( tqt_xdisplay(), w, tqt_xrootwin(), x, y );
|
||||
XMapWindow( tqt_xdisplay(), w );
|
||||
}
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 56b4b5f..e74d9f9 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -76,6 +76,30 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
emit activity();
|
||||
}
|
||||
}
|
||||
+ else if (ev->type == MapNotify) {
|
||||
+ // HACK
|
||||
+ // Close 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)) {
|
||||
+ XUnmapWindow(map_event.display, map_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);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
return KApplication::x11EventFilter( ev );
|
||||
}
|
||||
|
||||
--
|
||||
cgit v0.9.0.2-39-g756e
|
@ -1,51 +0,0 @@
|
||||
Index: krandrapp.cpp
|
||||
===================================================================
|
||||
--- kcontrol/randr/krandrapp.cpp (revision 1261452)
|
||||
+++ kcontrol/randr/krandrapp.cpp (working copy)
|
||||
@@ -28,13 +28,20 @@
|
||||
KRandRApp::KRandRApp()
|
||||
: m_tray(new KRandRSystemTray(0L, "RANDRTray"))
|
||||
{
|
||||
+ connect(&m_eventMergingTimer, TQT_SIGNAL(timeout()), this, TQT_SLOT(handleX11ConfigChangeEvent()));
|
||||
m_tray->show();
|
||||
}
|
||||
|
||||
+void KRandRApp::handleX11ConfigChangeEvent()
|
||||
+{
|
||||
+ m_eventMergingTimer.stop();
|
||||
+ m_tray->configChanged();
|
||||
+}
|
||||
+
|
||||
bool KRandRApp::x11EventFilter(XEvent* e)
|
||||
{
|
||||
if (e->type == m_tray->screenChangeNotifyEvent()) {
|
||||
- m_tray->configChanged();
|
||||
+ m_eventMergingTimer.start(1000, TRUE);
|
||||
}
|
||||
return KApplication::x11EventFilter( e );
|
||||
}
|
||||
Index: krandrapp.h
|
||||
===================================================================
|
||||
--- kcontrol/randr/krandrapp.h (revision 1261452)
|
||||
+++ kcontrol/randr/krandrapp.h (working copy)
|
||||
@@ -19,6 +19,7 @@
|
||||
#ifndef KRANDRAPP_H
|
||||
#define KRANDRAPP_H
|
||||
|
||||
+#include <tqtimer.h>
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
class KRandRSystemTray;
|
||||
@@ -32,8 +33,12 @@
|
||||
|
||||
virtual bool x11EventFilter(XEvent * e);
|
||||
|
||||
+private slots:
|
||||
+ void handleX11ConfigChangeEvent();
|
||||
+
|
||||
private:
|
||||
KRandRSystemTray* m_tray;
|
||||
+ TQTimer m_eventMergingTimer;
|
||||
};
|
||||
|
||||
#endif
|
@ -1,95 +0,0 @@
|
||||
commit 8468d9bd5c66fe402acbc06f728b12ea996848de
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1327049889 -0600
|
||||
|
||||
Replicate LED status from virtual keyboards to physical keyboards
|
||||
Fix keyboard attribute cloning
|
||||
This commit closes Bug 561
|
||||
|
||||
diff --git a/tsak/main.cpp b/tsak/main.cpp
|
||||
index df485a0..26aad00 100644
|
||||
--- a/tsak/main.cpp
|
||||
+++ b/tsak/main.cpp
|
||||
@@ -126,22 +126,23 @@ static void copy_features(int devin, int devout)
|
||||
for(i=0;i<EV_MAX;++i) {
|
||||
if (bit_set(i, evtypes)) {
|
||||
switch(i) {
|
||||
- case EV_KEY: op = UI_SET_KEYBIT; break;
|
||||
- case EV_REL: op = UI_SET_RELBIT; break;
|
||||
- case EV_ABS: op = UI_SET_ABSBIT; break;
|
||||
- case EV_MSC: op = UI_SET_MSCBIT; break;
|
||||
- case EV_LED: op = UI_SET_LEDBIT; break;
|
||||
- case EV_SND: op = UI_SET_SNDBIT; break;
|
||||
- case EV_SW: op = UI_SET_SWBIT; break;
|
||||
- default: op = -1;
|
||||
+ case EV_KEY: op = UI_SET_KEYBIT; break;
|
||||
+ case EV_REL: op = UI_SET_RELBIT; break;
|
||||
+ case EV_ABS: op = UI_SET_ABSBIT; break;
|
||||
+ case EV_MSC: op = UI_SET_MSCBIT; break;
|
||||
+ case EV_LED: op = UI_SET_LEDBIT; break;
|
||||
+ case EV_SND: op = UI_SET_SNDBIT; break;
|
||||
+ case EV_SW: op = UI_SET_SWBIT; break;
|
||||
+ default: op = -1;
|
||||
+ }
|
||||
}
|
||||
- }
|
||||
- if (op == -1) continue;
|
||||
- ioctl(devout, UI_SET_EVBIT, i);
|
||||
- memset(codes,0,sizeof(codes));
|
||||
- if (ioctl(devin, EVIOCGBIT(i, sizeof(codes)), codes) < 0) return;
|
||||
- for(code=0;code<KEY_MAX;code++) {
|
||||
- if (bit_set(code, codes)) ioctl(devout, op, code);
|
||||
+ if (op == -1) continue;
|
||||
+ ioctl(devout, UI_SET_EVBIT, i);
|
||||
+ memset(codes,0,sizeof(codes));
|
||||
+ if (ioctl(devin, EVIOCGBIT(i, sizeof(codes)), codes) >= 0) {
|
||||
+ for(code=0;code<KEY_MAX;code++) {
|
||||
+ if (bit_set(code, codes)) ioctl(devout, op, code);
|
||||
+ }
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -342,6 +343,7 @@ int main (int argc, char *argv[])
|
||||
{
|
||||
struct input_event ev[64];
|
||||
struct input_event event;
|
||||
+ struct input_event revev;
|
||||
struct uinput_user_dev devinfo={0};
|
||||
int devout[MAX_KEYBOARDS], rd, i, value, size = sizeof (struct input_event);
|
||||
char name[256] = "Unknown";
|
||||
@@ -416,9 +418,9 @@ int main (int argc, char *argv[])
|
||||
fprintf(stderr, "Reading from keyboard: (%s)\n", name);
|
||||
|
||||
// Create filtered virtual output device
|
||||
- devout[current_keyboard]=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
|
||||
+ devout[current_keyboard]=open("/dev/misc/uinput",O_RDWR|O_NONBLOCK);
|
||||
if (devout[current_keyboard]<0) {
|
||||
- devout[current_keyboard]=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
|
||||
+ devout[current_keyboard]=open("/dev/uinput",O_RDWR|O_NONBLOCK);
|
||||
if (devout[current_keyboard]<0) {
|
||||
perror("open(\"/dev/misc/uinput\")");
|
||||
}
|
||||
@@ -483,6 +485,14 @@ int main (int argc, char *argv[])
|
||||
fprintf(stderr, "Read failed.\n");
|
||||
break;
|
||||
}
|
||||
+
|
||||
+ // Replicate LED events from the virtual keyboard to the physical keyboard
|
||||
+ int rrd = read(devout[current_keyboard], &revev, size);
|
||||
+ if (rrd >= size) {
|
||||
+ if (revev.type == EV_LED) {
|
||||
+ write(keyboard_fds[current_keyboard], &revev, sizeof(revev));
|
||||
+ }
|
||||
+ }
|
||||
|
||||
value = ev[0].value;
|
||||
|
||||
@@ -506,7 +516,7 @@ int main (int argc, char *argv[])
|
||||
}
|
||||
}
|
||||
|
||||
- if (hide_event == false) {
|
||||
+ if ((hide_event == false) && (ev[0].type != EV_LED) && (ev[1].type != EV_LED)) {
|
||||
// Pass the event on...
|
||||
event = ev[0];
|
||||
write(devout[current_keyboard], &event, sizeof event);
|
@ -1,104 +0,0 @@
|
||||
Index: kicker/applets/systemtray/systemtrayapplet.cpp
|
||||
===================================================================
|
||||
--- kicker/applets/systemtray/systemtrayapplet.cpp (revision 1262481)
|
||||
+++ kicker/applets/systemtray/systemtrayapplet.cpp (working copy)
|
||||
@@ -34,6 +34,7 @@
|
||||
#include <tqstyle.h>
|
||||
#include <tqgrid.h>
|
||||
#include <tqpainter.h>
|
||||
+#include <tqimage.h>
|
||||
|
||||
#include <dcopclient.h>
|
||||
#include <kapplication.h>
|
||||
Index: kicker/applets/clock/clock.h
|
||||
===================================================================
|
||||
--- kicker/applets/clock/clock.h (revision 1262481)
|
||||
+++ kicker/applets/clock/clock.h (working copy)
|
||||
@@ -41,7 +41,6 @@
|
||||
|
||||
#include <kickertip.h>
|
||||
#include "settings.h"
|
||||
-#include "kshadowengine.h"
|
||||
|
||||
class TQTimer;
|
||||
class TQBoxLayout;
|
||||
@@ -283,8 +282,6 @@
|
||||
TQDate clockGetDate();
|
||||
|
||||
virtual void updateKickerTip(KickerTip::Data&);
|
||||
-
|
||||
- KTextShadowEngine *shadowEngine();
|
||||
|
||||
k_dcop:
|
||||
void reconfigure();
|
||||
@@ -344,7 +341,6 @@
|
||||
TQStringList _remotezonelist;
|
||||
KPopupMenu* menu;
|
||||
ClockAppletToolTip m_tooltip;
|
||||
- KTextShadowEngine *m_shadowEngine;
|
||||
};
|
||||
|
||||
|
||||
Index: kicker/applets/clock/clock.cpp
|
||||
===================================================================
|
||||
--- kicker/applets/clock/clock.cpp (revision 1262481)
|
||||
+++ kicker/applets/clock/clock.cpp (working copy)
|
||||
@@ -277,10 +277,7 @@
|
||||
{
|
||||
TQRect tr(0, 0, width(), height());
|
||||
|
||||
- if (!KickerSettings::transparent())
|
||||
- p->drawText(tr, AlignCenter, _timeStr);
|
||||
- else
|
||||
- _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size());
|
||||
+ p->drawText(tr, AlignCenter, _timeStr);
|
||||
}
|
||||
|
||||
//************************************************************
|
||||
@@ -862,10 +859,7 @@
|
||||
else
|
||||
tr = TQRect(4, 2, width() - 8, height() - 4);
|
||||
|
||||
- if (!KickerSettings::transparent())
|
||||
- p->drawText(tr, AlignCenter, _timeStr);
|
||||
- else
|
||||
- _applet->shadowEngine()->drawText(*p, tr, AlignCenter, _timeStr, size());
|
||||
+ p->drawText(tr, AlignCenter, _timeStr);
|
||||
|
||||
alreadyDrawing = false;
|
||||
}
|
||||
@@ -899,8 +893,7 @@
|
||||
_prefs(new Prefs(sharedConfig())),
|
||||
zone(new Zone(config())),
|
||||
menu(0),
|
||||
- m_tooltip(this),
|
||||
- m_shadowEngine(0)
|
||||
+ m_tooltip(this)
|
||||
{
|
||||
DCOPObject::setObjId("ClockApplet");
|
||||
_prefs->readConfig();
|
||||
@@ -938,7 +931,6 @@
|
||||
|
||||
ClockApplet::~ClockApplet()
|
||||
{
|
||||
- delete m_shadowEngine;
|
||||
//reverse for the moment
|
||||
KGlobal::locale()->removeCatalogue("clockapplet");
|
||||
KGlobal::locale()->removeCatalogue("timezones"); // For time zone translations
|
||||
@@ -959,15 +951,7 @@
|
||||
}
|
||||
|
||||
|
||||
-KTextShadowEngine *ClockApplet::shadowEngine()
|
||||
-{
|
||||
- if (!m_shadowEngine)
|
||||
- m_shadowEngine = new KTextShadowEngine();
|
||||
|
||||
- return m_shadowEngine;
|
||||
-}
|
||||
-
|
||||
-
|
||||
int ClockApplet::widthForHeight(int h) const
|
||||
{
|
||||
if (orientation() == Qt::Vertical)
|
||||
|
@ -1,34 +0,0 @@
|
||||
--- kdebase/kdm/kfrontend/kgapp.cpp.orig 2012-04-27 22:08:53.729331548 +0200
|
||||
+++ kdebase/kdm/kfrontend/kgapp.cpp 2012-04-27 22:06:29.169359295 +0200
|
||||
@@ -190,6 +190,7 @@
|
||||
KProcess *tsak = 0;
|
||||
KProcess *proc = 0;
|
||||
KProcess *comp = 0;
|
||||
+ KProcess *dcop = 0;
|
||||
KProcess *kwin = 0;
|
||||
|
||||
trinity_desktop_lock_use_sak = _useSAK;
|
||||
@@ -310,6 +311,13 @@
|
||||
}
|
||||
|
||||
if (!_windowManager.isEmpty()) {
|
||||
+ if (_windowManager == "kwin") {
|
||||
+ // Special case
|
||||
+ // Start DCOP...
|
||||
+ dcop = new KProcess;
|
||||
+ *dcop << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + "dcopserver" << TQCString("--suicide");
|
||||
+ dcop->start();
|
||||
+ }
|
||||
kwin = new KProcess;
|
||||
*kwin << TQCString( argv0, strrchr( argv0, '/' ) - argv0 + 2 ) + _windowManager.ascii();
|
||||
kwin->start();
|
||||
@@ -453,7 +461,9 @@
|
||||
if (kwin) {
|
||||
kwin->closeStdin();
|
||||
kwin->detach();
|
||||
+ dcop->detach();
|
||||
delete kwin;
|
||||
+ delete dcop;
|
||||
}
|
||||
delete proc;
|
||||
UnsecureDisplay( dpy );
|
@ -1,118 +0,0 @@
|
||||
--- kdebase/startkde.ORI 2011-12-12 20:09:21.984162840 +0100
|
||||
+++ kdebase/startkde 2011-12-12 20:08:27.922834925 +0100
|
||||
@@ -4,6 +4,7 @@
|
||||
#
|
||||
|
||||
echo "[startkde] Starting startkde." 1>&2
|
||||
+export KDEDIR="/opt/trinity"
|
||||
|
||||
# When the X server dies we get a HUP signal from xinit. We must ignore it
|
||||
# because we still need to do some cleanup.
|
||||
@@ -74,39 +75,10 @@
|
||||
echo "[startkde] KDEHOME is preset to $KDEHOME." 1>&2
|
||||
export KDEHOME=$KDEHOME
|
||||
else
|
||||
- # $KDEHOME is NOT already preset in the environment. Try to help.
|
||||
- # This might be overkill but does provide flexibility.
|
||||
+ # $KDEHOME is NOT already preset in the environment.
|
||||
+ # We always use ~/.trinity as default.
|
||||
echo "[startkde] KDEHOME is not set." 1>&2
|
||||
- if [ -d $HOME/.trinity ]; then
|
||||
- # OK, this one is obvious.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -d $HOME/.trinity ]; then
|
||||
- # Looks like the user had an old version of Trinity installed at last login
|
||||
- echo "[startkde] Migrating old ~/.trinity directory to new ~/.trinity name." 1>&2
|
||||
- mv $HOME/.trinity $HOME/.trinity
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -f /usr/bin/kde4-config ]; then
|
||||
- # Looks like KDE4 is installed.
|
||||
- if [ -d $HOME/.kde ] && [ ! -d $HOME/.trinity ]; then
|
||||
- # Presume $HOME/.kde is being used for KDE4 as it already exists.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- else
|
||||
- # Presume $HOME/.kde is being used for KDE4 to be on the safe side.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- fi
|
||||
- elif [ -f /opt/trinity/bin/kde-config ]; then
|
||||
- # Looks like KDE3 or Trinity is installed and playing second fiddle to KDE4.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -f /opt/trinity/bin/kde-config ]; then
|
||||
- # Looks like KDE3 or Trinity is installed and playing second fiddle to KDE4.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -f /usr/bin/kde-config ] && [ -d $HOME/.kde ]; then
|
||||
- # Looks like KDE3 or Trinity is installed and not playing second fiddle to KDE4.
|
||||
- export KDEHOME=$HOME/.kde
|
||||
- else
|
||||
- # Resort to this and hope for the best!
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- fi
|
||||
+ export KDEHOME=$HOME/.trinity
|
||||
echo "[startkde] Set KDEHOME to $KDEHOME." 1>&2
|
||||
fi
|
||||
|
||||
@@ -117,51 +89,25 @@
|
||||
fi
|
||||
|
||||
# Modify the following environment variables only as necessary.
|
||||
-if [ -d /opt/trinity/games ]; then
|
||||
- export PATH=/opt/trinity/games:$PATH
|
||||
-fi
|
||||
-if [ -d /opt/trinity/bin ]; then
|
||||
- export PATH=/opt/trinity/bin:$PATH
|
||||
-fi
|
||||
-if [ -d /opt/trinity/games ]; then
|
||||
- export PATH=/opt/trinity/games:$PATH
|
||||
-fi
|
||||
-if [ -d /opt/trinity/bin ]; then
|
||||
- export PATH=/opt/trinity/bin:$PATH
|
||||
-fi
|
||||
-if [ -d /opt/trinity/share ]; then
|
||||
- export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/trinity/share/:/usr/share/
|
||||
-fi
|
||||
-if [ -d /opt/trinity/share ]; then
|
||||
- export XDG_DATA_DIRS=$XDG_DATA_DIRS:/opt/trinity/share/:/usr/share/
|
||||
+if [ -d ${KDEDIR}/games ]; then
|
||||
+ export PATH=${KDEDIR}/games:$PATH
|
||||
fi
|
||||
-if [ -d /opt/trinity/etc/xdg ]; then
|
||||
- export XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:/opt/trinity/etc/xdg/:/etc/xdg/
|
||||
+if [ -d ${KDEDIR}/bin ]; then
|
||||
+ export PATH=${KDEDIR}/bin:$PATH
|
||||
fi
|
||||
-if [ -d /opt/trinity/etc/xdg ]; then
|
||||
- export XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:/opt/trinity/etc/xdg/:/etc/xdg/
|
||||
+if [ -d ${KDEDIR}/share ]; then
|
||||
+ export XDG_DATA_DIRS=$XDG_DATA_DIRS:${KDEDIR}/share/:/usr/share/
|
||||
fi
|
||||
-if [ -d /opt/trinity/share/man ]; then
|
||||
- export MANPATH=/opt/trinity/share/man:$MANPATH
|
||||
+if [ -d ${KDEDIR}/etc/xdg ]; then
|
||||
+ export XDG_CONFIG_DIRS=$XDG_CONFIG_DIRS:${KDEDIR}/etc/xdg/:/etc/xdg/
|
||||
fi
|
||||
-if [ -d /opt/trinity/share/man ]; then
|
||||
- export MANPATH=/opt/trinity/share/man:$MANPATH
|
||||
-fi
|
||||
-if [ -d /opt/trinity ]; then
|
||||
- if [ -n "$KDEDIRS" ]; then
|
||||
- export KDEDIRS=$KDEDIRS:/opt/trinity/:/usr/
|
||||
- else
|
||||
- export KDEDIRS=/opt/trinity/:/usr/
|
||||
- fi
|
||||
-fi
|
||||
-if [ -d /opt/trinity ]; then
|
||||
- if [ -n "$KDEDIRS" ]; then
|
||||
- export KDEDIRS=$KDEDIRS:/opt/trinity/:/usr/
|
||||
- else
|
||||
- export KDEDIRS=/opt/trinity/:/usr/
|
||||
- fi
|
||||
+if [ -d ${KDEDIR}/share/man ]; then
|
||||
+ export MANPATH=${KDEDIR}/share/man:$MANPATH
|
||||
fi
|
||||
|
||||
+# The TDE directory must be first in $KDEDIRS
|
||||
+export KDEDIRS=${KDEDIR}/:$KDEDIRS:/usr/
|
||||
+
|
||||
test -n "$KDEHOME" && kdehome=`echo "$KDEHOME" | sed "s,^~/,$HOME/,"`
|
||||
echo "[startkde] kdehome: $kdehome" 1>&2
|
||||
|
@ -1,19 +0,0 @@
|
||||
--- tdebase/startkde.ORI 2012-07-29 18:23:59.885538470 +0200
|
||||
+++ tdebase/startkde 2012-07-29 18:26:19.022618054 +0200
|
||||
@@ -152,6 +152,16 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
+# Default Start Button icon for TDE
|
||||
+if [ ! -e $kdehome/share/config/kickerrc ]; then
|
||||
+ if [ -r "%{tde_starticon}" ]; then
|
||||
+ cat <<EOF >$kdehome/share/config/kickerrc
|
||||
+[KMenu]
|
||||
+CustomIcon=%{tde_starticon}
|
||||
+EOF
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# XCursor mouse theme needs to be applied here to work even for kded or ksmserver.
|
||||
if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then
|
||||
kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
|
@ -1,13 +0,0 @@
|
||||
--- kdebase/startkde.ORI 2011-11-01 22:17:52.000000000 +0100
|
||||
+++ kdebase/startkde 2011-11-01 22:18:14.000000000 +0100
|
||||
@@ -413,7 +413,9 @@
|
||||
fi
|
||||
|
||||
if [ -n $KGTK_PRELOAD ]; then
|
||||
- if [ -e /usr/lib/libnspr4.so ]; then
|
||||
+ if [ -e /usr/lib64/libnspr4.so ]; then
|
||||
+ KGTK_NSPR_PRELOAD="/usr/lib64/libnspr4.so:"
|
||||
+ elif [ -e /usr/lib/libnspr4.so ]; then
|
||||
KGTK_NSPR_PRELOAD="/usr/lib/libnspr4.so:"
|
||||
fi
|
||||
export LD_PRELOAD=$KGTK_PRELOAD:$KGTK_NSPR_PRELOAD$LD_PRELOAD
|
File diff suppressed because it is too large
Load Diff
@ -1,641 +0,0 @@
|
||||
commit 5f413b26ebaab8a6478427e4125bda628058ff85
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1327015159 -0600
|
||||
|
||||
Add keyboard hotplug (add/remove) support to tsak
|
||||
This closes Bug 587
|
||||
Fix warning in kompmgr
|
||||
|
||||
diff --git a/tsak/CMakeLists.txt b/tsak/CMakeLists.txt
|
||||
index 6aa5b49..4490636 100644
|
||||
--- a/tsak/CMakeLists.txt
|
||||
+++ b/tsak/CMakeLists.txt
|
||||
@@ -23,5 +23,6 @@ link_directories(
|
||||
|
||||
tde_add_executable( tsak
|
||||
SOURCES main.cpp
|
||||
+ LINK udev
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
diff --git a/tsak/main.cpp b/tsak/main.cpp
|
||||
index 050d6c0..df485a0 100644
|
||||
--- a/tsak/main.cpp
|
||||
+++ b/tsak/main.cpp
|
||||
@@ -1,8 +1,8 @@
|
||||
/*
|
||||
Copyright 2010 Adam Marchetti
|
||||
-Copyright 2011 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
+Copyright 2011-2012 Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
|
||||
-This file is part of tsak.
|
||||
+This file is part of tsak, the TDE Secure Attention Key daemon
|
||||
|
||||
tsak is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as
|
||||
@@ -35,9 +35,15 @@ License along with tsak. If not, see http://www.gnu.org/licenses/.
|
||||
#include <sys/time.h>
|
||||
#include <termios.h>
|
||||
#include <signal.h>
|
||||
+#include <libudev.h>
|
||||
+#include <libgen.h>
|
||||
|
||||
#define FIFO_DIR "/tmp/ksocket-global"
|
||||
#define FIFO_FILE_OUT "/tmp/ksocket-global/tsak"
|
||||
+#define FIFO_LOCKFILE_OUT "/tmp/ksocket-global/tsak.lock"
|
||||
+
|
||||
+#define MAX_KEYBOARDS 64
|
||||
+#define MAX_INPUT_NODE 128
|
||||
|
||||
#define TestBit(bit, array) (array[(bit) / 8] & (1 << ((bit) % 8)))
|
||||
|
||||
@@ -46,9 +52,18 @@ typedef unsigned char byte;
|
||||
bool mPipeOpen_out = false;
|
||||
int mPipe_fd_out = -1;
|
||||
|
||||
+int mPipe_lockfd_out = -1;
|
||||
+
|
||||
+char filename[32];
|
||||
+char key_bitmask[(KEY_MAX + 7) / 8];
|
||||
+
|
||||
struct sigaction usr_action;
|
||||
sigset_t block_mask;
|
||||
|
||||
+int keyboard_fd_num;
|
||||
+int keyboard_fds[MAX_KEYBOARDS];
|
||||
+int child_pids[MAX_KEYBOARDS];
|
||||
+
|
||||
const char *keycode[256] =
|
||||
{
|
||||
"", "<esc>", "1", "2", "3", "4", "5", "6", "7", "8",
|
||||
@@ -79,6 +94,26 @@ int bit_set(size_t i, const byte* a)
|
||||
return a[i/CHAR_BIT] & (1 << i%CHAR_BIT);
|
||||
}
|
||||
|
||||
+// --------------------------------------------------------------------------------------
|
||||
+// Useful function from Stack Overflow
|
||||
+// http://stackoverflow.com/questions/874134/find-if-string-endswith-another-string-in-c
|
||||
+// --------------------------------------------------------------------------------------
|
||||
+/* returns 1 iff str ends with suffix */
|
||||
+int str_ends_with(const char * str, const char * suffix) {
|
||||
+
|
||||
+ if( str == NULL || suffix == NULL )
|
||||
+ return 0;
|
||||
+
|
||||
+ size_t str_len = strlen(str);
|
||||
+ size_t suffix_len = strlen(suffix);
|
||||
+
|
||||
+ if(suffix_len > str_len)
|
||||
+ return 0;
|
||||
+
|
||||
+ return 0 == strncmp( str + str_len - suffix_len, suffix, suffix_len );
|
||||
+}
|
||||
+// --------------------------------------------------------------------------------------
|
||||
+
|
||||
/* Assign features (supported axes and keys) of the physical input device (devin)
|
||||
* to the virtual input device (devout) */
|
||||
static void copy_features(int devin, int devout)
|
||||
@@ -111,26 +146,40 @@ static void copy_features(int devin, int devout)
|
||||
}
|
||||
}
|
||||
|
||||
-int find_keyboard() {
|
||||
+int find_keyboards() {
|
||||
int i, j;
|
||||
int fd;
|
||||
- char filename[32];
|
||||
- char key_bitmask[(KEY_MAX + 7) / 8];
|
||||
+ char name[256] = "Unknown";
|
||||
+
|
||||
+ keyboard_fd_num = 0;
|
||||
+ for (i=0; i<MAX_KEYBOARDS; i++) {
|
||||
+ keyboard_fds[i] = 0;
|
||||
+ }
|
||||
|
||||
- for (i=0; i<32; i++) {
|
||||
+ for (i=0; i<MAX_INPUT_NODE; i++) {
|
||||
snprintf(filename,sizeof(filename), "/dev/input/event%d", i);
|
||||
-
|
||||
+
|
||||
fd = open(filename, O_RDWR|O_SYNC);
|
||||
ioctl(fd, EVIOCGBIT(EV_KEY, sizeof(key_bitmask)), key_bitmask);
|
||||
-
|
||||
- /* We assume that anything that has an alphabetic key in the
|
||||
- QWERTYUIOP range in it is the main keyboard. */
|
||||
- for (j = KEY_Q; j <= KEY_P; j++) {
|
||||
- if (TestBit(j, key_bitmask))
|
||||
- return fd;
|
||||
+
|
||||
+ // Ensure that we do not detect our own tsak faked keyboards
|
||||
+ ioctl (fd, EVIOCGNAME (sizeof (name)), name);
|
||||
+ if (str_ends_with(name, "+tsak") == 0) {
|
||||
+ /* We assume that anything that has an alphabetic key in the
|
||||
+ QWERTYUIOP range in it is the main keyboard. */
|
||||
+ for (j = KEY_Q; j <= KEY_P; j++) {
|
||||
+ if (TestBit(j, key_bitmask)) {
|
||||
+ keyboard_fds[keyboard_fd_num] = fd;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (keyboard_fds[keyboard_fd_num] == 0) {
|
||||
+ close (fd);
|
||||
+ }
|
||||
+ else {
|
||||
+ keyboard_fd_num++;
|
||||
}
|
||||
-
|
||||
- close (fd);
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
@@ -144,6 +193,12 @@ void tearDownPipe()
|
||||
}
|
||||
}
|
||||
|
||||
+void tearDownLockingPipe()
|
||||
+{
|
||||
+ close(mPipe_lockfd_out);
|
||||
+ unlink(FIFO_LOCKFILE_OUT);
|
||||
+}
|
||||
+
|
||||
bool setFileLock(int fd, bool close_on_failure)
|
||||
{
|
||||
struct flock fl;
|
||||
@@ -154,8 +209,8 @@ bool setFileLock(int fd, bool close_on_failure)
|
||||
fl.l_len = 1;
|
||||
|
||||
// Set the exclusive file lock
|
||||
- if (fcntl(mPipe_fd_out, F_SETLK, &fl) == -1) {
|
||||
- close(mPipe_fd_out);
|
||||
+ if (fcntl(fd, F_SETLK, &fl) == -1) {
|
||||
+ close(fd);
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -171,7 +226,7 @@ bool checkFileLock()
|
||||
fl.l_whence = SEEK_SET;
|
||||
fl.l_len = 0;
|
||||
|
||||
- int fd = open(FIFO_FILE_OUT, O_RDWR | O_NONBLOCK);
|
||||
+ int fd = open(FIFO_LOCKFILE_OUT, O_RDWR | O_NONBLOCK);
|
||||
fcntl(fd, F_GETLK, &fl); /* Overwrites lock structure with preventors. */
|
||||
|
||||
if (fd > -1) {
|
||||
@@ -202,6 +257,71 @@ bool setupPipe()
|
||||
return setFileLock(mPipe_fd_out, true);
|
||||
}
|
||||
|
||||
+bool setupLockingPipe()
|
||||
+{
|
||||
+ /* Create the FIFOs if they do not exist */
|
||||
+ umask(0);
|
||||
+ mkdir(FIFO_DIR,0644);
|
||||
+
|
||||
+ mknod(FIFO_LOCKFILE_OUT, S_IFIFO|0600, 0);
|
||||
+ chmod(FIFO_LOCKFILE_OUT, 0600);
|
||||
+
|
||||
+ mPipe_lockfd_out = open(FIFO_LOCKFILE_OUT, O_RDWR | O_NONBLOCK);
|
||||
+ if (mPipe_lockfd_out > -1) {
|
||||
+ // Set the exclusive file lock
|
||||
+ return setFileLock(mPipe_lockfd_out, true);
|
||||
+ }
|
||||
+
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+void broadcast_sak()
|
||||
+{
|
||||
+ // Let anyone listening to our interface know that an SAK keypress was received
|
||||
+ // I highly doubt there are more than 255 VTs active at once...
|
||||
+ int i;
|
||||
+ for (i=0;i<255;i++) {
|
||||
+ write(mPipe_fd_out, "SAK\n\r", 6);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void restart_tsak()
|
||||
+{
|
||||
+ int i;
|
||||
+
|
||||
+ fprintf(stderr, "Forcibly terminating...\n");
|
||||
+
|
||||
+ // Close down all child processes
|
||||
+ for (i=0; i<MAX_KEYBOARDS; i++) {
|
||||
+ if (child_pids[i] != 0) {
|
||||
+ kill(child_pids[i], SIGKILL);
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // Wait for process termination
|
||||
+ sleep(1);
|
||||
+
|
||||
+ // Release all exclusive keyboard locks
|
||||
+ for (int current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
|
||||
+ if(ioctl(keyboard_fds[current_keyboard], EVIOCGRAB, 0) < 0) {
|
||||
+ fprintf(stderr, "Failed to release exclusive input device lock");
|
||||
+ }
|
||||
+ close(keyboard_fds[current_keyboard]);
|
||||
+ }
|
||||
+
|
||||
+#if 1
|
||||
+ // Restart now
|
||||
+ // Note that the execl function never returns
|
||||
+ char me[2048];
|
||||
+ int chars = readlink("/proc/self/exe", me, sizeof(me));
|
||||
+ me[chars] = 0;
|
||||
+ me[2047] = 0;
|
||||
+ execl(me, basename(me), (char*)NULL);
|
||||
+#else
|
||||
+ _exit(0);
|
||||
+#endif
|
||||
+}
|
||||
+
|
||||
class PipeHandler
|
||||
{
|
||||
public:
|
||||
@@ -215,7 +335,7 @@ PipeHandler::PipeHandler()
|
||||
|
||||
PipeHandler::~PipeHandler()
|
||||
{
|
||||
- tearDownPipe();
|
||||
+ tearDownLockingPipe();
|
||||
}
|
||||
|
||||
int main (int argc, char *argv[])
|
||||
@@ -223,13 +343,19 @@ int main (int argc, char *argv[])
|
||||
struct input_event ev[64];
|
||||
struct input_event event;
|
||||
struct uinput_user_dev devinfo={0};
|
||||
- int fd, devout, rd, value, size = sizeof (struct input_event);
|
||||
+ int devout[MAX_KEYBOARDS], rd, i, value, size = sizeof (struct input_event);
|
||||
char name[256] = "Unknown";
|
||||
bool ctrl_down = false;
|
||||
bool alt_down = false;
|
||||
bool hide_event = false;
|
||||
bool established = false;
|
||||
bool testrun = false;
|
||||
+ int current_keyboard;
|
||||
+ bool can_proceed;
|
||||
+
|
||||
+ for (i=0; i<MAX_KEYBOARDS; i++) {
|
||||
+ child_pids[i] = 0;
|
||||
+ }
|
||||
|
||||
if (argc == 2) {
|
||||
if (strcmp(argv[1], "checkactive") == 0) {
|
||||
@@ -239,7 +365,11 @@ int main (int argc, char *argv[])
|
||||
|
||||
// Check for existing file locks
|
||||
if (!checkFileLock()) {
|
||||
- fprintf(stderr, "Another instance of this program is already running\n");
|
||||
+ fprintf(stderr, "Another instance of this program is already running [1]\n");
|
||||
+ return 8;
|
||||
+ }
|
||||
+ if (!setupLockingPipe()) {
|
||||
+ fprintf(stderr, "Another instance of this program is already running [2]\n");
|
||||
return 8;
|
||||
}
|
||||
|
||||
@@ -256,125 +386,227 @@ int main (int argc, char *argv[])
|
||||
return 5;
|
||||
}
|
||||
|
||||
- // Open Device
|
||||
- fd = find_keyboard();
|
||||
- if (fd == -1) {
|
||||
- printf ("Could not find your keyboard!\n");
|
||||
+ // Find keyboards
|
||||
+ find_keyboards();
|
||||
+ if (keyboard_fd_num == 0) {
|
||||
+ printf ("Could not find any usable keyboard(s)!\n");
|
||||
+ // Make sure everyone knows we physically can't detect a SAK
|
||||
+ // Before we do this we broadcast one so that active dialogs are updated appropriately
|
||||
+ // Also, we keep watching for a keyboard to be added via a forked child process...
|
||||
+ broadcast_sak();
|
||||
if (established)
|
||||
sleep(1);
|
||||
- else
|
||||
- return 4;
|
||||
+ else {
|
||||
+ int i=fork();
|
||||
+ if (i<0) return 12; // fork failed
|
||||
+ if (i>0) {
|
||||
+ return 4;
|
||||
+ }
|
||||
+ sleep(1);
|
||||
+ restart_tsak();
|
||||
+ }
|
||||
}
|
||||
else {
|
||||
- // Print Device Name
|
||||
- ioctl (fd, EVIOCGNAME (sizeof (name)), name);
|
||||
- fprintf(stderr, "Reading From : (%s)\n", name);
|
||||
-
|
||||
- // Create filtered virtual output device
|
||||
- devout=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
|
||||
- if (devout<0) {
|
||||
- perror("open(\"/dev/misc/uinput\")");
|
||||
- devout=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
|
||||
- }
|
||||
- if (devout<0) {
|
||||
- fprintf(stderr,"Unable to open /dev/uinput or /dev/misc/uinput (char device 10:223).\nPossible causes:\n 1) Device node does not exist\n 2) Kernel not compiled with evdev [INPUT_EVDEV] and uinput [INPUT_UINPUT] user level driver support\n 3) Permission denied.\n");
|
||||
- perror("open(\"/dev/uinput\")");
|
||||
- if (established)
|
||||
- sleep(1);
|
||||
- else
|
||||
- return 3;
|
||||
- }
|
||||
- else {
|
||||
- if(ioctl(fd, EVIOCGRAB, 2) < 0) {
|
||||
- close(fd);
|
||||
- fprintf(stderr, "Failed to grab exclusive input device lock");
|
||||
+ fprintf(stderr, "Found %d keyboard(s)\n", keyboard_fd_num);
|
||||
+
|
||||
+ can_proceed = true;
|
||||
+ for (current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
|
||||
+ // Print Device Name
|
||||
+ ioctl (keyboard_fds[current_keyboard], EVIOCGNAME (sizeof (name)), name);
|
||||
+ fprintf(stderr, "Reading from keyboard: (%s)\n", name);
|
||||
+
|
||||
+ // Create filtered virtual output device
|
||||
+ devout[current_keyboard]=open("/dev/misc/uinput",O_WRONLY|O_NONBLOCK);
|
||||
+ if (devout[current_keyboard]<0) {
|
||||
+ devout[current_keyboard]=open("/dev/uinput",O_WRONLY|O_NONBLOCK);
|
||||
+ if (devout[current_keyboard]<0) {
|
||||
+ perror("open(\"/dev/misc/uinput\")");
|
||||
+ }
|
||||
+ }
|
||||
+ if (devout[current_keyboard]<0) {
|
||||
+ can_proceed = false;
|
||||
+ fprintf(stderr, "Unable to open /dev/uinput or /dev/misc/uinput (char device 10:223).\nPossible causes:\n 1) Device node does not exist\n 2) Kernel not compiled with evdev [INPUT_EVDEV] and uinput [INPUT_UINPUT] user level driver support\n 3) Permission denied.\n");
|
||||
+ perror("open(\"/dev/uinput\")");
|
||||
if (established)
|
||||
sleep(1);
|
||||
else
|
||||
- return 1;
|
||||
+ return 3;
|
||||
}
|
||||
- else {
|
||||
- ioctl(fd, EVIOCGNAME(UINPUT_MAX_NAME_SIZE), devinfo.name);
|
||||
- strncat(devinfo.name, "+tsak", UINPUT_MAX_NAME_SIZE-1);
|
||||
- fprintf(stderr, "%s\n", devinfo.name);
|
||||
- ioctl(fd, EVIOCGID, &devinfo.id);
|
||||
-
|
||||
- copy_features(fd, devout);
|
||||
- write(devout,&devinfo,sizeof(devinfo));
|
||||
- if (ioctl(devout,UI_DEV_CREATE)<0) {
|
||||
- fprintf(stderr,"Unable to create input device with UI_DEV_CREATE\n");
|
||||
+ }
|
||||
+
|
||||
+ if (can_proceed == true) {
|
||||
+ for (current_keyboard=0;current_keyboard<keyboard_fd_num;current_keyboard++) {
|
||||
+ if(ioctl(keyboard_fds[current_keyboard], EVIOCGRAB, 2) < 0) {
|
||||
+ close(keyboard_fds[current_keyboard]);
|
||||
+ fprintf(stderr, "Failed to grab exclusive input device lock");
|
||||
if (established)
|
||||
sleep(1);
|
||||
else
|
||||
- return 2;
|
||||
+ return 1;
|
||||
}
|
||||
else {
|
||||
- fprintf(stderr,"Device created.\n");
|
||||
-
|
||||
- if (established == false) {
|
||||
- tearDownPipe();
|
||||
- int i=fork();
|
||||
- if (i<0) return 9; // fork failed
|
||||
- if (i>0) {
|
||||
- // close parent process
|
||||
- close(mPipe_fd_out);
|
||||
- return 0;
|
||||
- }
|
||||
- setupPipe();
|
||||
+ ioctl(keyboard_fds[current_keyboard], EVIOCGNAME(UINPUT_MAX_NAME_SIZE), devinfo.name);
|
||||
+ strncat(devinfo.name, "+tsak", UINPUT_MAX_NAME_SIZE-1);
|
||||
+ fprintf(stderr, "%s\n", devinfo.name);
|
||||
+ ioctl(keyboard_fds[current_keyboard], EVIOCGID, &devinfo.id);
|
||||
+
|
||||
+ copy_features(keyboard_fds[current_keyboard], devout[current_keyboard]);
|
||||
+ write(devout[current_keyboard],&devinfo,sizeof(devinfo));
|
||||
+ if (ioctl(devout[current_keyboard],UI_DEV_CREATE)<0) {
|
||||
+ fprintf(stderr, "Unable to create input device with UI_DEV_CREATE\n");
|
||||
+ if (established)
|
||||
+ sleep(1);
|
||||
+ else
|
||||
+ return 2;
|
||||
}
|
||||
-
|
||||
- established = true;
|
||||
-
|
||||
- if (testrun == true) {
|
||||
- return 0;
|
||||
- }
|
||||
-
|
||||
- while (1) {
|
||||
- if ((rd = read (fd, ev, size * 2)) < size) {
|
||||
- fprintf(stderr,"Read failed.\n");
|
||||
- break;
|
||||
- }
|
||||
-
|
||||
- value = ev[0].value;
|
||||
-
|
||||
- if (value != ' ' && ev[1].value == 0 && ev[1].type == 1){ // Read the key release event
|
||||
- if (keycode[(ev[1].code)]) {
|
||||
- if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = false;
|
||||
- if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = false;
|
||||
+ else {
|
||||
+ fprintf(stderr, "Device created.\n");
|
||||
+
|
||||
+ if (established == false) {
|
||||
+ int i=fork();
|
||||
+ if (i<0) return 9; // fork failed
|
||||
+ if (i>0) {
|
||||
+ child_pids[current_keyboard] = i;
|
||||
+ continue;
|
||||
}
|
||||
+ setupLockingPipe();
|
||||
}
|
||||
- if (value != ' ' && ev[1].value == 1 && ev[1].type == 1){ // Read the key press event
|
||||
- if (keycode[(ev[1].code)]) {
|
||||
- if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = true;
|
||||
- if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = true;
|
||||
- }
|
||||
+
|
||||
+ established = true;
|
||||
+
|
||||
+ if (testrun == true) {
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
- hide_event = false;
|
||||
- if (keycode[(ev[1].code)]) {
|
||||
- if (alt_down && ctrl_down && (strcmp(keycode[(ev[1].code)], "<del>") == 0)) {
|
||||
- hide_event = true;
|
||||
+ while (1) {
|
||||
+ if ((rd = read (keyboard_fds[current_keyboard], ev, size * 2)) < size) {
|
||||
+ fprintf(stderr, "Read failed.\n");
|
||||
+ break;
|
||||
+ }
|
||||
+
|
||||
+ value = ev[0].value;
|
||||
+
|
||||
+ if (value != ' ' && ev[1].value == 0 && ev[1].type == 1){ // Read the key release event
|
||||
+ if (keycode[(ev[1].code)]) {
|
||||
+ if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = false;
|
||||
+ if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = false;
|
||||
+ }
|
||||
+ }
|
||||
+ if (value != ' ' && ev[1].value == 1 && ev[1].type == 1){ // Read the key press event
|
||||
+ if (keycode[(ev[1].code)]) {
|
||||
+ if (strcmp(keycode[(ev[1].code)], "<control>") == 0) ctrl_down = true;
|
||||
+ if (strcmp(keycode[(ev[1].code)], "<alt>") == 0) alt_down = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ hide_event = false;
|
||||
+ if (keycode[(ev[1].code)]) {
|
||||
+ if (alt_down && ctrl_down && (strcmp(keycode[(ev[1].code)], "<del>") == 0)) {
|
||||
+ hide_event = true;
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ if (hide_event == false) {
|
||||
+ // Pass the event on...
|
||||
+ event = ev[0];
|
||||
+ write(devout[current_keyboard], &event, sizeof event);
|
||||
+ event = ev[1];
|
||||
+ write(devout[current_keyboard], &event, sizeof event);
|
||||
+ }
|
||||
+ if (hide_event == true) {
|
||||
+ // Let anyone listening to our interface know that an SAK keypress was received
|
||||
+ broadcast_sak();
|
||||
}
|
||||
}
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // fork udev monitor process
|
||||
+ int i=fork();
|
||||
+ if (i<0) return 10; // fork failed
|
||||
+ if (i>0) {
|
||||
+ // Terminate parent
|
||||
+ return 0;
|
||||
+ }
|
||||
+
|
||||
+ // Prevent multiple process instances from starting
|
||||
+ setupLockingPipe();
|
||||
+
|
||||
+ // Wait a little bit so that udev hotplug can stabilize before we start monitoring
|
||||
+ sleep(1);
|
||||
+
|
||||
+ fprintf(stderr, "Hotplug monitoring process started\n");
|
||||
+
|
||||
+ // Monitor for hotplugged keyboards
|
||||
+ int j;
|
||||
+ int hotplug_fd;
|
||||
+ bool is_new_keyboard;
|
||||
+ struct udev *udev;
|
||||
+ struct udev_device *dev;
|
||||
+ struct udev_monitor *mon;
|
||||
+
|
||||
+ // Create the udev object
|
||||
+ udev = udev_new();
|
||||
+ if (!udev) {
|
||||
+ fprintf(stderr, "Cannot connect to udev interface\n");
|
||||
+ return 11;
|
||||
+ }
|
||||
+
|
||||
+ // Set up a udev monitor to monitor input devices
|
||||
+ mon = udev_monitor_new_from_netlink(udev, "udev");
|
||||
+ udev_monitor_filter_add_match_subsystem_devtype(mon, "input", NULL);
|
||||
+ udev_monitor_enable_receiving(mon);
|
||||
+
|
||||
+ while (1) {
|
||||
+ // Watch for input from the monitoring process
|
||||
+ dev = udev_monitor_receive_device(mon);
|
||||
+ if (dev) {
|
||||
+ // If a keyboard was removed we need to restart...
|
||||
+ if (strcmp(udev_device_get_action(dev), "remove") == 0) {
|
||||
+ udev_device_unref(dev);
|
||||
+ udev_unref(udev);
|
||||
+ restart_tsak();
|
||||
+ }
|
||||
+
|
||||
+ is_new_keyboard = false;
|
||||
+ snprintf(filename,sizeof(filename), "%s", udev_device_get_devnode(dev));
|
||||
+ udev_device_unref(dev);
|
||||
+
|
||||
+ // Print name of keyboard
|
||||
+ hotplug_fd = open(filename, O_RDWR|O_SYNC);
|
||||
+ ioctl(hotplug_fd, EVIOCGBIT(EV_KEY, sizeof(key_bitmask)), key_bitmask);
|
||||
|
||||
- if (hide_event == false) {
|
||||
- // Pass the event on...
|
||||
- event = ev[0];
|
||||
- write(devout, &event, sizeof event);
|
||||
- event = ev[1];
|
||||
- write(devout, &event, sizeof event);
|
||||
- }
|
||||
- if (hide_event == true) {
|
||||
- // Let anyone listening to our interface know that an SAK keypress was received
|
||||
- // I highly doubt there are more than 255 VTs active at once...
|
||||
- int i;
|
||||
- for (i=0;i<255;i++) {
|
||||
- write(mPipe_fd_out, "SAK\n\r", 6);
|
||||
- }
|
||||
+ /* We assume that anything that has an alphabetic key in the
|
||||
+ QWERTYUIOP range in it is the main keyboard. */
|
||||
+ for (j = KEY_Q; j <= KEY_P; j++) {
|
||||
+ if (TestBit(j, key_bitmask)) {
|
||||
+ is_new_keyboard = true;
|
||||
}
|
||||
}
|
||||
+ ioctl (hotplug_fd, EVIOCGNAME (sizeof (name)), name);
|
||||
+ close(hotplug_fd);
|
||||
+
|
||||
+ // Ensure that we do not detect our own tsak faked keyboards
|
||||
+ if (str_ends_with(name, "+tsak") == 1) {
|
||||
+ is_new_keyboard = false;
|
||||
+ }
|
||||
+
|
||||
+ // If a keyboard was added we need to restart...
|
||||
+ if (is_new_keyboard == true) {
|
||||
+ fprintf(stderr, "Hotplugged new keyboard: (%s)\n", name);
|
||||
+ udev_unref(udev);
|
||||
+ restart_tsak();
|
||||
+ }
|
||||
+ }
|
||||
+ else {
|
||||
+ fprintf(stderr, "No Device from receive_device(). An error occured.\n");
|
||||
}
|
||||
}
|
||||
+
|
||||
+ udev_unref(udev);
|
||||
+
|
||||
+ fprintf(stderr, "Hotplug monitoring process terminated\n");
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/twin/kompmgr/kompmgr.c b/twin/kompmgr/kompmgr.c
|
||||
index 5daf8c2..8216676 100644
|
||||
--- a/kwin/kompmgr/kompmgr.c
|
||||
+++ b/kwin/kompmgr/kompmgr.c
|
||||
@@ -60,6 +60,7 @@ check baghira.sf.net for more infos
|
||||
#include <signal.h>
|
||||
#include <time.h>
|
||||
#include <unistd.h>
|
||||
+#include <libgen.h>
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xutil.h>
|
||||
#include <X11/Xatom.h>
|
||||
@@ -397,7 +398,7 @@ void delete_pid_file()
|
||||
int chars = readlink("/proc/self/exe", me, sizeof(me));
|
||||
me[chars] = 0;
|
||||
me[2047] = 0;
|
||||
- execl(me, NULL);
|
||||
+ execl(me, basename(me), (char*)NULL);
|
||||
}
|
||||
#endif
|
||||
}
|
@ -1,49 +0,0 @@
|
||||
commit 03e19305ec704b8749bb7564e16ed8d78a80d516
|
||||
Author: Darrell Anderson <humanreadable@yahoo.com>
|
||||
Date: 1340675585 -0500
|
||||
|
||||
Update default konqueror maximum image preview size to 10MB.
|
||||
|
||||
diff --git a/kcontrol/konq/previews.cpp b/kcontrol/konq/previews.cpp
|
||||
index cbe4d40..53c16f1 100644
|
||||
--- a/kcontrol/konq/previews.cpp
|
||||
+++ b/kcontrol/konq/previews.cpp
|
||||
@@ -67,14 +67,14 @@ KPreviewOptions::KPreviewOptions( TQWidget *parent, const char */*name*/ )
|
||||
|
||||
setQuickHelp( i18n("<h1>Preview Options</h1> Here you can modify the behavior "
|
||||
"of Konqueror when it shows the files in a folder."
|
||||
- "<h2>The list of protocols:</h2> check the protocols over which "
|
||||
+ "<h2>The list of protocols:</h2> Check the protocols over which "
|
||||
"previews should be shown; uncheck those over which they should not. "
|
||||
"For instance, you might want to show previews over SMB if the local "
|
||||
"network is fast enough, but you might disable it for FTP if you often "
|
||||
"visit very slow FTP sites with large images."
|
||||
- "<h2>Maximum File Size:</h2> select the maximum file size for which "
|
||||
- "previews should be generated. For instance, if set to 1 MB (the default), "
|
||||
- "no preview will be generated for files bigger than 1 MB, for speed reasons."));
|
||||
+ "<h2>Maximum File Size:</h2> Select the maximum file size for which "
|
||||
+ "previews should be generated. For instance, if set to 10 MB (the default), "
|
||||
+ "no preview will be generated for files bigger than 10 MB, for speed reasons."));
|
||||
|
||||
// Listview containing checkboxes for all protocols that support listing
|
||||
KListView *listView = new KListView( this, "listView" );
|
||||
@@ -152,8 +152,8 @@ KPreviewOptions::KPreviewOptions( TQWidget *parent, const char */*name*/ )
|
||||
load();
|
||||
}
|
||||
|
||||
-// Default: 1 MB
|
||||
-#define DEFAULT_MAXSIZE (1024*1024)
|
||||
+// Default: 10 MB
|
||||
+#define DEFAULT_MAXSIZE (1024*1024*10)
|
||||
|
||||
void KPreviewOptions::load(bool useDefaults)
|
||||
{
|
||||
@@ -171,7 +171,7 @@ void KPreviewOptions::load(bool useDefaults)
|
||||
else
|
||||
it.current()->setOn( group.readBoolEntry( protocol, false ) );
|
||||
}
|
||||
- // config key is in bytes (default value 1MB), numinput is in MB
|
||||
+ // config key is in bytes (default value 10MB), numinput is in MB
|
||||
m_maxSize->setValue( ((double)group.readNumEntry( "MaximumSize", DEFAULT_MAXSIZE )) / (1024*1024) );
|
||||
|
||||
m_boostSize->setChecked( group.readBoolEntry( "BoostSize", false /*default*/ ) );
|
Binary file not shown.
@ -1,20 +0,0 @@
|
||||
--- kdebase-3.5.13.1/kcontrol/displayconfig/displayconfig.desktop.ORI 2012-10-04 23:36:14.085070870 +0200
|
||||
+++ kdebase-3.5.13.1/kcontrol/displayconfig/displayconfig.desktop 2012-10-04 23:36:23.449879298 +0200
|
||||
@@ -3,7 +3,7 @@
|
||||
Comment=Configure display
|
||||
Comment[en_US]=Configure display
|
||||
DocPath=kcontrol/displayconfig.html
|
||||
-Exec[$e]=kcmshell displayconfig
|
||||
+Exec=kcmshell displayconfig
|
||||
GenericName=
|
||||
GenericName[en_US]=
|
||||
Icon=background
|
||||
@@ -12,7 +12,7 @@
|
||||
Name=Monitor & Display
|
||||
Name[en_US]=Monitor & Display
|
||||
NoDisplay=false
|
||||
-Path[$e]=
|
||||
+Path=
|
||||
StartupNotify=true
|
||||
Terminal=false
|
||||
TerminalOptions=
|
@ -1,107 +0,0 @@
|
||||
--- bin/startkde.ORI 2012-11-16 20:44:01.763131101 +0100
|
||||
+++ bin/startkde 2012-11-16 21:24:12.865147976 +0100
|
||||
@@ -15,6 +15,26 @@
|
||||
source $HOME/.xprofile
|
||||
fi
|
||||
|
||||
+# Some functions to parse and check path correctly ...
|
||||
+is_in_path() {
|
||||
+ search="$1"; ifs="$IFS"; IFS=":"; set $PATH; IFS="$ifs"
|
||||
+ for i in $*; do
|
||||
+ [ "${i}" = "${search}" ] && return 0
|
||||
+ done
|
||||
+ return 1
|
||||
+}
|
||||
+
|
||||
+# Usage: place_before_in_path /opt/trinity/games /usr/games
|
||||
+place_before_in_path() {
|
||||
+ insert="$1"; before="$2"; ifs="$IFS"; IFS=":"; set $PATH; IFS="$ifs"
|
||||
+ NPATH=""
|
||||
+ for i in $*; do
|
||||
+ [ "${i}" = "${before}" ] && NPATH="${NPATH}:${insert}"
|
||||
+ NPATH="${NPATH}:${i}"
|
||||
+ done
|
||||
+ export PATH=${NPATH}
|
||||
+}
|
||||
+
|
||||
echo "[startkde] Starting startkde." 1>&2
|
||||
echo "[startkde] This script is $0" 1>&2
|
||||
|
||||
@@ -29,7 +49,7 @@
|
||||
# Do not use kde-config to determine the version. That command creates a
|
||||
# profile directory in the root of the file system. Refer to Bug Report 293.
|
||||
if [ -x $BIN_DIR/konqueror ]; then
|
||||
- KDE_VERSION="`$BIN_DIR/konqueror --version | grep KDE | awk '{print $2}'`"
|
||||
+ KDE_VERSION=$($BIN_DIR/konqueror --version | while IFS=: read a b; do [[ "$a" =~ "KDE" ]] && echo $b; done)
|
||||
echo "[startkde] TDE version is $KDE_VERSION" 1>&2
|
||||
export KDEDIR=${BIN_DIR%/bin}
|
||||
echo "[startkde] TDE base directory is $KDEDIR" 1>&2
|
||||
@@ -105,27 +125,12 @@
|
||||
# This script and kstandardirs.h and kstandardirs.cpp must match.
|
||||
# The latter two must be edited/patched before compiling.
|
||||
echo "[startkde] KDEHOME is not set." 1>&2
|
||||
- if [ -d $HOME/.trinity ]; then
|
||||
- # OK, this one is obvious.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -f /usr/bin/kde4-config ]; then
|
||||
- # Looks like KDE4 is installed.
|
||||
- if [ -d $HOME/.kde ] && [ ! -d $HOME/.trinity ]; then
|
||||
- # Presume $HOME/.kde is being used for KDE4 as it already exists.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- else
|
||||
- # Presume $HOME/.kde is being used for KDE4 to be on the safe side.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- fi
|
||||
- elif [ -f /opt/trinity/bin/kde-config ]; then
|
||||
- # Looks like Trinity is installed.
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
- elif [ -f /usr/bin/kde-config ] && [ -d $HOME/.kde ]; then
|
||||
+ # Default value: $HOME/.trinity. Most users will use this.
|
||||
+ export KDEHOME=$HOME/.trinity
|
||||
+
|
||||
+ if [ ! -d $HOME/.trinity ] && [ ! -f /usr/bin/kde4-config ] && [ -f /usr/bin/kde-config ] && [ -d $HOME/.kde ]; then
|
||||
# Looks like Trinity is installed and not playing second fiddle to KDE4.
|
||||
export KDEHOME=$HOME/.kde
|
||||
- else
|
||||
- # Resort to this and hope for the best!
|
||||
- export KDEHOME=$HOME/.trinity
|
||||
fi
|
||||
echo "[startkde] Set KDEHOME to $KDEHOME." 1>&2
|
||||
fi
|
||||
@@ -149,30 +154,30 @@
|
||||
|
||||
# Modify the following environment variables only as necessary.
|
||||
if [ -d $KDEDIR/games ]; then
|
||||
- if [ "`echo $PATH | grep \"$KDEDIR/games\"`" = "" ]; then
|
||||
+ if ! is_in_path "$KDEDIR/games" ; then
|
||||
# Respect the traditional path order. Don't blindly place $KDEDIR/games
|
||||
# first in the path. Only place $KDEDIR/games before /usr/games. If packagers
|
||||
# are adding $KDEDIR/games elsewhere, then they need to ensure the traditional
|
||||
# search patch is respected.
|
||||
# Is there a way we can check that $KDEDIR/games is always placed only just before
|
||||
# /usr/games in the search path?
|
||||
- if [ "`echo $PATH | grep \"^\\(.*:\\)\\?/usr/games\\(:.*\\)\\?$\"`" != "" ]; then
|
||||
- export PATH="`echo $PATH | sed \"s|^\\(.*:\\)\\?/usr/games\\(:.*\\)\\?$|\\1$KDEDIR/games:/usr/games\\2|\"`"
|
||||
+ if is_in_path "/usr/games"; then
|
||||
+ place_before_in_path "$KDEDIR/games" "/usr/games"
|
||||
else
|
||||
export PATH=$KDEDIR/games:$PATH
|
||||
fi
|
||||
fi
|
||||
fi
|
||||
if [ -d $KDEDIR/bin ]; then
|
||||
- if [ "`echo $PATH | grep \"$KDEDIR/bin\"`" = "" ]; then
|
||||
+ if ! is_in_path "$KDEDIR/bin" ]; then
|
||||
# Respect the traditional path order. Don't blindly place $KDEDIR/bin
|
||||
# first in the path. Only place $KDEDIR/bin before /usr/bin. This order is
|
||||
# consistent with kdelibs/kdesu/stub.cpp. If packagers are adding $KDEDIR/bin
|
||||
# elsewhere, then they need to ensure the traditional search patch is respected.
|
||||
# Is there a way we can check that $KDEDIR/bin is always placed only just before
|
||||
# /usr/bin in the search path?
|
||||
- if [ "`echo $PATH | grep \"^\\(.*:\\)\\?/usr/bin\\(:.*\\)\\?$\"`" != "" ]; then
|
||||
- export PATH="`echo $PATH | sed \"s|^\\(.*:\\)\\?/usr/bin\\(:.*\\)\\?$|\\1$KDEDIR/bin:/usr/bin\\2|\"`"
|
||||
+ if is_in_path "/usr/bin"; then
|
||||
+ place_before_in_path "$KDEDIR/bin" "/usr/bin"
|
||||
else
|
||||
export PATH=$KDEDIR/bin:$PATH
|
||||
fi
|
@ -1,11 +0,0 @@
|
||||
--- kdebase-3.5.13.1/kdm/config.def.ORI 2012-12-01 12:45:04.820426652 +0100
|
||||
+++ kdebase-3.5.13.1/kdm/config.def 2012-12-01 12:45:16.291197270 +0100
|
||||
@@ -883,7 +883,7 @@
|
||||
Type: string
|
||||
Default: ""
|
||||
User: core
|
||||
-Instance: "/var/run/kdm.pid"
|
||||
+Instance: "/var/run/tdm.pid"
|
||||
Merge: xdm
|
||||
Comment:
|
||||
Where &kdm; should store its PID (do not store if empty).
|
@ -1,19 +0,0 @@
|
||||
--- kdebase/startkde.tdeicon 2012-08-09 10:33:24.000000000 +0200
|
||||
+++ kdebase/startkde 2012-08-09 10:34:11.484608675 +0200
|
||||
@@ -302,6 +302,16 @@
|
||||
fi
|
||||
fi
|
||||
|
||||
+# Default Start Button icon for TDE
|
||||
+if [ ! -e $kdehome/share/config/kickerrc ]; then
|
||||
+ if [ -r "%{tde_starticon}" ]; then
|
||||
+ cat <<EOF >$kdehome/share/config/kickerrc
|
||||
+[KMenu]
|
||||
+CustomIcon=%{tde_starticon}
|
||||
+EOF
|
||||
+ fi
|
||||
+fi
|
||||
+
|
||||
# XCursor mouse theme needs to be applied here to work even for kded or ksmserver.
|
||||
if test -n "$kcminputrc_mouse_cursortheme" -o -n "$kcminputrc_mouse_cursorsize" ; then
|
||||
kapplymousetheme "$kcminputrc_mouse_cursortheme" "$kcminputrc_mouse_cursorsize"
|
File diff suppressed because it is too large
Load Diff
@ -1,15 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2/kdmlib/dmctl.cpp.ORI 2013-02-15 22:22:05.217381830 +0100
|
||||
+++ trinity-tdebase-3.5.13.2/kdmlib/dmctl.cpp 2013-02-15 22:52:06.635823349 +0100
|
||||
@@ -180,7 +180,12 @@
|
||||
if (DMType == GDM)
|
||||
return exec( "QUERY_LOGOUT_ACTION\n", re ) && re.find("HALT") >= 0;
|
||||
|
||||
+#ifdef WITH_CONSOLE_KIT
|
||||
+ // Use consolekit to check if we can shutdown the computer
|
||||
+ return exec( "dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.CanStop\n", re ) && re.find("boolean true") >= 0;
|
||||
+#else
|
||||
return exec( "caps\n", re ) && re.find( "\tshutdown" ) >= 0;
|
||||
+#endif
|
||||
}
|
||||
|
||||
void
|
@ -1,81 +0,0 @@
|
||||
--- kdebase/kdesktop/bgmanager.cc.ORI 2012-09-06 17:20:49.564915154 -0400
|
||||
+++ kdebase/kdesktop/bgmanager.cc 2012-09-06 17:21:01.969682348 -0400
|
||||
@@ -1013,13 +1013,13 @@
|
||||
slotChangeDesktop(0);
|
||||
}
|
||||
|
||||
-#ifdef COMPOSITE
|
||||
void KBackgroundManager::slotCmBackgroundChanged( bool )
|
||||
{
|
||||
+#ifdef COMPOSITE
|
||||
m_tPixmap->fill(TQColor(0, 0x0));
|
||||
m_Hash = 0;
|
||||
slotChangeDesktop(0);
|
||||
-}
|
||||
#endif
|
||||
+}
|
||||
|
||||
#include "bgmanager.moc"
|
||||
--- kdebase/kdesktop/main.cc.ORI 2012-09-07 20:33:09.716283507 +0200
|
||||
+++ kdebase/kdesktop/main.cc 2012-09-07 20:33:31.683842727 +0200
|
||||
@@ -43,7 +43,7 @@
|
||||
#include <fcntl.h>
|
||||
#include <stdlib.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/kdesktop/bgmanager.h.ORI 2012-09-07 20:36:28.196299160 +0200
|
||||
+++ kdebase/kdesktop/bgmanager.h 2012-09-07 20:36:52.420812591 +0200
|
||||
@@ -15,7 +15,7 @@
|
||||
|
||||
#include <KBackgroundIface.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/kdesktop/kdesktopapp.h.ORI 2012-09-07 20:37:14.677365503 +0200
|
||||
+++ kdebase/kdesktop/kdesktopapp.h 2012-09-07 20:37:25.194154223 +0200
|
||||
@@ -23,7 +23,7 @@
|
||||
#include <config.h>
|
||||
#include <kuniqueapplication.h>
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- kdebase/konsole/konsole/main.cpp.ORI 2012-09-07 20:37:37.749901966 +0200
|
||||
+++ kdebase/konsole/konsole/main.cpp 2012-09-07 20:37:46.683722469 +0200
|
||||
@@ -46,7 +46,7 @@
|
||||
|
||||
#include "konsole.h"
|
||||
|
||||
-#if defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
+#if defined(WITH_COMPOSITE) && defined(Q_WS_X11) && defined(HAVE_XRENDER) && QT_VERSION >= 0x030300
|
||||
#define COMPOSITE
|
||||
#endif
|
||||
|
||||
--- trinity-tdebase-3.5.13.2/CMakeLists.txt.composite 2013-06-16 21:49:33.742313671 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/CMakeLists.txt 2013-06-16 21:49:40.485177448 +0200
|
||||
@@ -82,6 +82,7 @@
|
||||
option( WITH_I8K "Enable Dell laptop support (ksysguard)" ${WITH_ALL_OPTIONS} )
|
||||
option( WITH_HAL "Enable HAL support" ${WITH_ALL_OPTIONS} )
|
||||
option( WITH_KDESKTOP_LOCK_BACKTRACE "Enable backtrace in kdesktop_lock exception handler" ${WITH_ALL_OPTIONS} )
|
||||
+option( WITH_COMPOSITE "Enable COMPOSITE support" OFF )
|
||||
|
||||
|
||||
##### user requested modules ####################
|
||||
--- trinity-tdebase-3.5.13.2/config.h.cmake.composite 2013-06-16 21:50:04.626689570 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/config.h.cmake 2013-06-16 21:50:13.094518380 +0200
|
||||
@@ -188,3 +188,6 @@
|
||||
// Kickoff menu
|
||||
#cmakedefine KICKOFF_DIST_CONFIG_SHORTCUT1 "@KICKOFF_DIST_CONFIG_SHORTCUT1@"
|
||||
#cmakedefine KICKOFF_DIST_CONFIG_SHORTCUT2 "@KICKOFF_DIST_CONFIG_SHORTCUT2@"
|
||||
+
|
||||
+// kdesktop, konsole
|
||||
+#cmakedefine WITH_COMPOSITE "@WITH_COMPOSITE@"
|
@ -1,139 +0,0 @@
|
||||
--- kdebase/kdm/backend/CMakeLists.txt.ORI 2012-09-06 22:11:08.422091268 +0200
|
||||
+++ kdebase/kdm/backend/CMakeLists.txt 2012-09-06 22:11:21.280843938 +0200
|
||||
@@ -14,11 +14,11 @@
|
||||
include_directories(
|
||||
${CMAKE_CURRENT_BINARY_DIR}
|
||||
${CMAKE_BINARY_DIR}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
##### kdm (executable) ##########################
|
||||
@@ -43,6 +43,6 @@
|
||||
process.c protodpy.c reset.c resource.c rpcauth.c
|
||||
server.c session.c sessreg.c socket.c streams.c
|
||||
util.c xdmauth.c xdmcp.c
|
||||
- LINK X11 ${XAU_LIBRARIES} ${DBUS_TQT_LIBRARIES} ${CRYPT_LIBRARY} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
+ LINK X11 ${XAU_LIBRARIES} ${DBUS_LIBRARIES} ${CRYPT_LIBRARY} ${PAM_LIBRARY} ${XDMCP_LIBRARIES}
|
||||
DESTINATION ${BIN_INSTALL_DIR}
|
||||
)
|
||||
--- kdebase/ksmserver/CMakeLists.txt.ORI 2012-09-06 17:22:59.990317001 -0400
|
||||
+++ kdebase/ksmserver/CMakeLists.txt 2012-09-06 17:23:16.340989494 -0400
|
||||
@@ -19,13 +19,13 @@
|
||||
${CMAKE_SOURCE_DIR}/kdmlib
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${HAL_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
@@ -43,5 +43,5 @@
|
||||
main.cpp server.cpp shutdowndlg.cpp startupdlg.cpp
|
||||
legacy.cpp startup.cpp shutdown.cpp client.cpp
|
||||
KSMServerInterface.skel server.skel timed.ui
|
||||
- LINK dmctl-static kdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_TQT_LIBRARIES}
|
||||
+ LINK dmctl-static kdeui-shared krsync-shared ${HAL_LIBRARIES} ${DBUS_LIBRARIES}
|
||||
)
|
||||
--- kdebase/kioslave/media/mediamanager/CMakeLists.txt.ORI 2012-09-07 23:57:56.858227336 +0200
|
||||
+++ kdebase/kioslave/media/mediamanager/CMakeLists.txt 2012-09-07 23:58:54.948097583 +0200
|
||||
@@ -20,12 +20,12 @@
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
${HAL_INCLUDE_DIRS}
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
||||
${TQT_LIBRARY_DIRS}
|
||||
- ${DBUS_TQT_LIBRARY_DIRS}
|
||||
+ ${DBUS_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
|
||||
@@ -48,7 +48,7 @@
|
||||
|
||||
tde_add_kpart( ${target} AUTOMOC
|
||||
SOURCES ${${target}_SRCS}
|
||||
- LINK mediacommon-static kdeinit_kded-shared ${HAL_LIBRARIES} -lhal-storage ${DBUS_TQT_LIBRARIES}
|
||||
+ LINK mediacommon-static kdeinit_kded-shared ${HAL_LIBRARIES} -lhal-storage ${DBUS_LIBRARIES} -ldbus-qt-1
|
||||
DESTINATION ${PLUGIN_INSTALL_DIR}
|
||||
)
|
||||
else( )
|
||||
--- trinity-tdebase-3.5.13.2/ConfigureChecks.cmake.ORI 2013-01-23 23:11:55.903373346 +0100
|
||||
+++ trinity-tdebase-3.5.13.2/ConfigureChecks.cmake 2013-01-23 23:12:23.168860363 +0100
|
||||
@@ -256,21 +256,3 @@
|
||||
endif( )
|
||||
|
||||
|
||||
-# dbus-tqt (kdm, ksmserver, kioslaves(media))
|
||||
-if( BUILD_KDM OR BUILD_KSMSERVER OR (BUILD_KIOSLAVES AND WITH_HAL) )
|
||||
- # check for dbus-tqt
|
||||
- pkg_check_modules( DBUS_TQT REQUIRED dbus-tqt )
|
||||
- tde_save( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- set( CMAKE_REQUIRED_INCLUDES ${DBUS_TQT_INCLUDE_DIRS} ${TQT_INCLUDE_DIRS} ${QT_INCLUDE_DIRS})
|
||||
- set( CMAKE_REQUIRED_LIBRARIES ${DBUS_TQT_LDFLAGS} ${TQT_LDFLAGS} ${QT_LDFLAGS} )
|
||||
- check_cxx_source_compiles("
|
||||
- #include <tqt.h>
|
||||
- #include <dbus/connection.h>
|
||||
- int main(int, char**) { return 0; } "
|
||||
- HAVE_DBUS_QT3_07 )
|
||||
- tde_restore( CMAKE_REQUIRED_INCLUDES CMAKE_REQUIRED_LIBRARIES )
|
||||
- if( NOT HAVE_DBUS_QT3_07 )
|
||||
- tde_message_fatal( "dbus-tqt is required, but was not found on your system" )
|
||||
- endif( )
|
||||
-
|
||||
-endif( )
|
||||
--- trinity-tdebase-3.5.13.2/kicker/kicker/ui/CMakeLists.txt.ORI 2013-06-16 22:01:14.879046232 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/kicker/kicker/ui/CMakeLists.txt 2013-06-16 22:01:32.316688895 +0200
|
||||
@@ -20,7 +20,7 @@
|
||||
${CMAKE_SOURCE_DIR}/kicker/kicker/buttons
|
||||
${CMAKE_SOURCE_DIR}/kdmlib
|
||||
${CMAKE_SOURCE_DIR}/libkonq
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
)
|
||||
@@ -56,5 +56,5 @@
|
||||
tde_add_library( ${target} STATIC_PIC AUTOMOC
|
||||
SOURCES ${${target}_SRCS}
|
||||
DEPENDENCIES kicker_core-static kickermain-static
|
||||
- LINK dmctl-static kickoffsearch_interfaces-shared ${DBUS_TQT_LIBRARIES} ${HAL_LIBRARIES}
|
||||
+ LINK dmctl-static kickoffsearch_interfaces-shared ${DBUS_LIBRARIES} ${HAL_LIBRARIES}
|
||||
)
|
||||
--- trinity-tdebase-3.5.13.2/kicker/kicker/core/CMakeLists.txt.ORI 2013-06-16 22:05:07.891261997 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/kicker/kicker/core/CMakeLists.txt 2013-06-16 22:05:17.673060725 +0200
|
||||
@@ -17,7 +17,7 @@
|
||||
${CMAKE_SOURCE_DIR}/kicker/libkicker
|
||||
${CMAKE_SOURCE_DIR}/kicker/kicker/ui
|
||||
${CMAKE_SOURCE_DIR}/kicker/kicker/buttons
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
)
|
||||
--- trinity-tdebase-3.5.13.2/kicker/kicker/buttons/CMakeLists.txt.ORI 2013-06-16 22:09:44.143564983 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/kicker/kicker/buttons/CMakeLists.txt 2013-06-16 22:09:48.450475959 +0200
|
||||
@@ -17,7 +17,7 @@
|
||||
${CMAKE_SOURCE_DIR}/kicker/kicker/core
|
||||
${CMAKE_SOURCE_DIR}/kicker/kicker/ui
|
||||
${CMAKE_SOURCE_DIR}/libkonq
|
||||
- ${DBUS_TQT_INCLUDE_DIRS}
|
||||
+ ${DBUS_INCLUDE_DIRS}
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
)
|
@ -1,39 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2/config.h.cmake.ORI 2013-02-11 13:57:40.955386048 +0100
|
||||
+++ trinity-tdebase-3.5.13.2/config.h.cmake 2013-02-11 14:02:42.484413874 +0100
|
||||
@@ -159,6 +159,9 @@
|
||||
|
||||
#cmakedefine XDMCP 1
|
||||
|
||||
+#define TDM_DEFMINUID "@TDM_DEFMINUID@"
|
||||
+#define TDM_DEFMAXUID "@TDM_DEFMAXUID@"
|
||||
+
|
||||
|
||||
// ksmserver
|
||||
#cmakedefine DBUS_SYSTEM_BUS "@DBUS_SYSTEM_BUS@"
|
||||
--- trinity-tdebase-3.5.13.2/kdm/kfrontend/genkdmconf.c.ORI 2013-02-11 14:03:11.290843286 +0100
|
||||
+++ trinity-tdebase-3.5.13.2/kdm/kfrontend/genkdmconf.c 2013-02-11 14:05:21.309267838 +0100
|
||||
@@ -2761,6 +2761,10 @@
|
||||
}
|
||||
}
|
||||
}
|
||||
+#ifdef TDM_MINDEFUID
|
||||
+ defminuid = TDM_MINDEFUID;
|
||||
+ defmaxuid = TDM_MAXDEFUID;
|
||||
+#else // TDM_MINDEFUID
|
||||
#ifdef __linux__
|
||||
if (!stat( "/etc/debian_version", &st )) { /* debian */
|
||||
defminuid = "1000";
|
||||
@@ -2778,10 +2782,11 @@
|
||||
defminuid = "500";
|
||||
defmaxuid = "65000";
|
||||
}
|
||||
-#else
|
||||
+#else // __linux__
|
||||
defminuid = "1000";
|
||||
defmaxuid = "65000";
|
||||
-#endif
|
||||
+#endif // __linux__
|
||||
+#endif // TDM_MINDEFUID
|
||||
for (i = 0; i < CONF_MAX_PRIO; i++)
|
||||
for (cs = config; cs; cs = cs->next)
|
||||
for (ce = cs->ents; ce; ce = ce->next)
|
File diff suppressed because it is too large
Load Diff
@ -1,135 +0,0 @@
|
||||
commit 553923b25dc41e2c17ba9038eb225cd3bb9b1770
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1348270079 -0500
|
||||
|
||||
Forcibly prevent transient override redirect windows from showing up over the lock screen
|
||||
This closes Bug 1079
|
||||
|
||||
diff --git a/kdesktop/lock/lockdlg.cc b/kdesktop/lock/lockdlg.cc
|
||||
index 236bf8a..005ac99 100644
|
||||
--- a/kdesktop/lock/lockdlg.cc
|
||||
+++ b/kdesktop/lock/lockdlg.cc
|
||||
@@ -573,9 +573,19 @@ void PasswordDlg::gplugActivity()
|
||||
|
||||
void PasswordDlg::gplugMsgBox( TQMessageBox::Icon type, const TQString &text )
|
||||
{
|
||||
- TQDialog dialog( this, 0, true, (WFlags)WX11BypassWM );
|
||||
+ TQDialog dialog( this, 0, 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(qt_xdisplay(), "_KDE_WM_MODAL_SYS_NOTIFICATION", False);
|
||||
+ XChangeProperty(qt_xdisplay(), dialog.winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
|
||||
+ }
|
||||
+ dialog.setCaption(i18n("Authentication Subsystem Notice"));
|
||||
TQFrame *winFrame = new TQFrame( &dialog );
|
||||
- winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
+ if (trinity_desktop_lock_use_system_modal_dialogs)
|
||||
+ winFrame->setFrameStyle( TQFrame::NoFrame );
|
||||
+ else
|
||||
+ winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
winFrame->setLineWidth( 2 );
|
||||
TQVBoxLayout *vbox = new TQVBoxLayout( &dialog );
|
||||
vbox->addWidget( winFrame );
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 2ce7507..5265bc6 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -960,6 +960,27 @@ void LockProcess::createSaverWindow()
|
||||
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
+ // HACK
|
||||
+ // Close all tooltips and notification windows
|
||||
+ {
|
||||
+ Window rootWindow = RootWindow(x11Display(), x11Screen());
|
||||
+ Window parent;
|
||||
+ Window* children = NULL;
|
||||
+ unsigned int noOfChildren = 0;
|
||||
+ XWindowAttributes childAttr;
|
||||
+ Window childTransient;
|
||||
+
|
||||
+ if (XQueryTree(x11Display(), rootWindow, &rootWindow, &parent, &children, &noOfChildren) && noOfChildren>0 ) {
|
||||
+ for (unsigned int i=0; i<noOfChildren; i++) {
|
||||
+ if (XGetWindowAttributes(x11Display(), children[i], &childAttr) && XGetTransientForHint(x11Display(), children[i], &childTransient)) {
|
||||
+ if ((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
|
||||
+ XUnmapWindow(x11Display(), children[i]);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
kdDebug(1204) << "Saver window Id: " << winId() << endl;
|
||||
}
|
||||
|
||||
@@ -2162,9 +2183,19 @@ void LockProcess::unlockXF86()
|
||||
|
||||
void LockProcess::msgBox( TQMessageBox::Icon type, const TQString &txt )
|
||||
{
|
||||
- TQDialog box( 0, "messagebox", true, (WFlags)WX11BypassWM );
|
||||
+ TQDialog box( 0, "messagebox", 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(qt_xdisplay(), "_KDE_WM_MODAL_SYS_NOTIFICATION", False);
|
||||
+ XChangeProperty(qt_xdisplay(), box.winId(), kde_wm_system_modal_notification, XA_INTEGER, 32, PropModeReplace, (unsigned char *) "TRUE", 1L);
|
||||
+ }
|
||||
+ box.setCaption(i18n("Authentication Subsystem Notice"));
|
||||
TQFrame *winFrame = new TQFrame( &box );
|
||||
- winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
+ if (trinity_desktop_lock_use_system_modal_dialogs)
|
||||
+ winFrame->setFrameStyle( TQFrame::NoFrame );
|
||||
+ else
|
||||
+ winFrame->setFrameStyle( TQFrame::WinPanel | TQFrame::Raised );
|
||||
winFrame->setLineWidth( 2 );
|
||||
TQLabel *label1 = new TQLabel( winFrame );
|
||||
label1->setPixmap( TQMessageBox::standardIcon( type ) );
|
||||
@@ -2264,8 +2295,10 @@ void LockProcess::windowAdded( WId w, bool managed )
|
||||
int y = XDisplayHeight( qt_xdisplay(), qt_xscreen()) - attr_geom.height;
|
||||
if( managed ) {
|
||||
XSetWindowAttributes attr;
|
||||
- attr.override_redirect = True;
|
||||
- XChangeWindowAttributes( qt_xdisplay(), w, CWOverrideRedirect, &attr );
|
||||
+ if (!trinity_desktop_lock_use_system_modal_dialogs) {
|
||||
+ attr.override_redirect = True;
|
||||
+ XChangeWindowAttributes( qt_xdisplay(), w, CWOverrideRedirect, &attr );
|
||||
+ }
|
||||
XReparentWindow( qt_xdisplay(), w, qt_xrootwin(), x, y );
|
||||
XMapWindow( qt_xdisplay(), w );
|
||||
}
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index 56b4b5f..e74d9f9 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -76,6 +76,30 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
emit activity();
|
||||
}
|
||||
}
|
||||
+ else if (ev->type == MapNotify) {
|
||||
+ // HACK
|
||||
+ // Close 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)) {
|
||||
+ XUnmapWindow(map_event.display, map_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);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
return KApplication::x11EventFilter( ev );
|
||||
}
|
||||
|
@ -1,159 +0,0 @@
|
||||
commit 57f5c0698d49f0a0a7a55c75404f5b9ded910002
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1348355175 -0500
|
||||
|
||||
Lower override redirect windows instead of unmapping them on lock start
|
||||
Restore lowered windows on lock exit
|
||||
This provides a better solution to Bug 1079
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 5265bc6..7191346 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -138,6 +138,8 @@ extern bool trinity_desktop_lock_delay_screensaver_start;
|
||||
extern bool trinity_desktop_lock_use_sak;
|
||||
extern bool trinity_desktop_lock_forced;
|
||||
|
||||
+extern TQXLibWindowList trinity_desktop_lock_hidden_window_list;
|
||||
+
|
||||
bool trinity_desktop_lock_autohide_lockdlg = TRUE;
|
||||
bool trinity_desktop_lock_closing_windows = FALSE;
|
||||
bool trinity_desktop_lock_in_sec_dlg = FALSE;
|
||||
@@ -961,7 +963,7 @@ void LockProcess::createSaverWindow()
|
||||
setGeometry(0, 0, mRootWidth, mRootHeight);
|
||||
|
||||
// HACK
|
||||
- // Close all tooltips and notification windows
|
||||
+ // Hide all tooltips and notification windows
|
||||
{
|
||||
Window rootWindow = RootWindow(x11Display(), x11Screen());
|
||||
Window parent;
|
||||
@@ -974,7 +976,10 @@ void LockProcess::createSaverWindow()
|
||||
for (unsigned int i=0; i<noOfChildren; i++) {
|
||||
if (XGetWindowAttributes(x11Display(), children[i], &childAttr) && XGetTransientForHint(x11Display(), children[i], &childTransient)) {
|
||||
if ((childAttr.map_state == IsViewable) && (childAttr.override_redirect) && (childTransient)) {
|
||||
- XUnmapWindow(x11Display(), children[i]);
|
||||
+ if (!trinity_desktop_lock_hidden_window_list.contains(children[i])) {
|
||||
+ trinity_desktop_lock_hidden_window_list.append(children[i]);
|
||||
+ }
|
||||
+ XLowerWindow(x11Display(), children[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/kdesktop/lock/lockprocess.h b/kdesktop/lock/lockprocess.h
|
||||
index 0dacc46..7fd4236 100644
|
||||
--- a/kdesktop/lock/lockprocess.h
|
||||
+++ b/kdesktop/lock/lockprocess.h
|
||||
@@ -38,6 +38,8 @@ struct GreeterPluginHandle {
|
||||
#define FIFO_FILE_OUT "/tmp/ksocket-global/kdesktoplockcontrol_out"
|
||||
#define PIPE_CHECK_INTERVAL 50
|
||||
|
||||
+typedef TQValueList<Window> TQXLibWindowList;
|
||||
+
|
||||
//===========================================================================
|
||||
//
|
||||
// Screen saver handling process. Handles screensaver window,
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index e74d9f9..a95747e 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -47,6 +47,8 @@ else { \
|
||||
} \
|
||||
tdmconfig->setGroup("X-*-Greeter");
|
||||
|
||||
+TQXLibWindowList trinity_desktop_lock_hidden_window_list;
|
||||
+
|
||||
// [FIXME] Add GUI configuration checkboxes for these three settings (see kdesktoprc [ScreenSaver] UseUnmanagedLockWindows, DelaySaverStart, and UseTDESAK)
|
||||
bool trinity_desktop_lock_use_system_modal_dialogs = FALSE;
|
||||
bool trinity_desktop_lock_delay_screensaver_start = FALSE;
|
||||
@@ -78,16 +80,43 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
}
|
||||
else if (ev->type == MapNotify) {
|
||||
// HACK
|
||||
- // Close all tooltips and notification windows
|
||||
+ // 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)) {
|
||||
- XUnmapWindow(map_event.display, map_event.window);
|
||||
+ 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);
|
||||
}
|
||||
}
|
||||
}
|
||||
+ 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);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+ 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
|
||||
@@ -100,6 +129,7 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
}
|
||||
}
|
||||
}
|
||||
+#endif
|
||||
return KApplication::x11EventFilter( ev );
|
||||
}
|
||||
|
||||
@@ -114,6 +144,14 @@ static KCmdLineOptions options[] =
|
||||
KCmdLineLastOption
|
||||
};
|
||||
|
||||
+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(qt_xdisplay(), win);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
static void sigusr1_handler(int)
|
||||
{
|
||||
signalled_forcelock = TRUE;
|
||||
@@ -356,7 +394,10 @@ int main( int argc, char **argv )
|
||||
}
|
||||
|
||||
if (in_internal_mode == FALSE) {
|
||||
- return app.exec();
|
||||
+ trinity_desktop_lock_hidden_window_list.clear();
|
||||
+ int ret = app.exec();
|
||||
+ restore_hidden_override_redirect_windows();
|
||||
+ return ret;
|
||||
}
|
||||
else {
|
||||
pid_t kdesktop_pid = atoi(args->getOption( "internal" ));
|
||||
@@ -364,7 +405,9 @@ int main( int argc, char **argv )
|
||||
// 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;
|
@ -1,58 +0,0 @@
|
||||
commit 1f33dc8fd2fc14c2abb74be4e27ef08fdda784d6
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1348374670 -0500
|
||||
|
||||
Attempt to minimize the time in which new notifications are displayed before being hidden
|
||||
|
||||
diff --git a/kdesktop/lock/lockprocess.cc b/kdesktop/lock/lockprocess.cc
|
||||
index 7191346..db92c00 100644
|
||||
--- a/kdesktop/lock/lockprocess.cc
|
||||
+++ b/kdesktop/lock/lockprocess.cc
|
||||
@@ -980,6 +980,7 @@ void LockProcess::createSaverWindow()
|
||||
trinity_desktop_lock_hidden_window_list.append(children[i]);
|
||||
}
|
||||
XLowerWindow(x11Display(), children[i]);
|
||||
+ XFlush(x11Display());
|
||||
}
|
||||
}
|
||||
}
|
||||
diff --git a/kdesktop/lock/main.cc b/kdesktop/lock/main.cc
|
||||
index a95747e..7235776 100644
|
||||
--- a/kdesktop/lock/main.cc
|
||||
+++ b/kdesktop/lock/main.cc
|
||||
@@ -90,6 +90,7 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
trinity_desktop_lock_hidden_window_list.append(map_event.window);
|
||||
}
|
||||
XLowerWindow(map_event.display, map_event.window);
|
||||
+ XFlush(map_event.display);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -106,10 +107,27 @@ bool MyApp::x11EventFilter( XEvent *ev )
|
||||
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;
|
||||
+ 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);
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
else if (ev->type == DestroyNotify) {
|
||||
XDestroyWindowEvent destroy_event = ev->xdestroywindow;
|
||||
if (trinity_desktop_lock_hidden_window_list.contains(destroy_event.window)) {
|
@ -1,29 +0,0 @@
|
||||
Index: kdebase/kdesktop/init/My_Documents
|
||||
===================================================================
|
||||
--- kdebase/kdesktop/init/My_Documents (revision 1182807)
|
||||
+++ kdebase/kdesktop/init/My_Documents (revision 1182808)
|
||||
@@ -1,10 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Encoding=UTF-8
|
||||
-Comment=
|
||||
-Comment[en_US]=
|
||||
-Exec=kxdglauncher --xdgname DOCUMENTS
|
||||
Icon=folder_wordprocessing
|
||||
-MimeType=
|
||||
Name=My Documents
|
||||
Name[af]=Dokument Gids
|
||||
Name[ar]=مستنداتي
|
||||
@@ -70,10 +66,12 @@
|
||||
Name[wa]=Ridant documints
|
||||
Name[zh_CN]=文档文件夹
|
||||
Name[zh_TW]=文件目錄
|
||||
+URL=$( kxdglauncher --getpath --xdgname DOCUMENTS )
|
||||
+Type=Link
|
||||
StartupNotify=true
|
||||
+MimeType=
|
||||
Terminal=false
|
||||
TerminalOptions=
|
||||
-Type=Application
|
||||
X-DCOP-ServiceType=
|
||||
X-KDE-SubstituteUID=false
|
||||
X-KDE-Username=
|
@ -1,31 +0,0 @@
|
||||
Index: kdebase/kcontrol/crypto/crypto.cpp
|
||||
===================================================================
|
||||
--- kdebase/kcontrol/crypto/crypto.cpp (revision 1201522)
|
||||
+++ kdebase/kcontrol/crypto/crypto.cpp (revision 1201523)
|
||||
@@ -2321,7 +2321,7 @@
|
||||
unsigned int i;
|
||||
SSL_CTX *ctx;
|
||||
SSL *ssl;
|
||||
-SSL_METHOD *meth;
|
||||
+const SSL_METHOD *meth;
|
||||
|
||||
SSLv2Box->clear();
|
||||
SSLv3Box->clear();
|
||||
@@ -2337,7 +2337,7 @@
|
||||
CipherItem *item;
|
||||
for (i=0; ; i++) {
|
||||
int j, k;
|
||||
- SSL_CIPHER *sc;
|
||||
+ const SSL_CIPHER *sc;
|
||||
sc = (meth->get_cipher)(i);
|
||||
if (!sc)
|
||||
break;
|
||||
@@ -2365,7 +2365,7 @@
|
||||
|
||||
for (i=0; ; i++) {
|
||||
int j, k;
|
||||
- SSL_CIPHER *sc;
|
||||
+ const SSL_CIPHER *sc;
|
||||
sc = (meth->get_cipher)(i);
|
||||
if (!sc)
|
||||
break;
|
@ -1,43 +0,0 @@
|
||||
Index: kdebase/kcontrol/crypto/crypto.cpp
|
||||
===================================================================
|
||||
--- kdebase/kcontrol/crypto/crypto.cpp (revision 1201704)
|
||||
+++ kdebase/kcontrol/crypto/crypto.cpp (revision 1201705)
|
||||
@@ -2316,12 +2316,19 @@
|
||||
|
||||
|
||||
#ifdef HAVE_SSL
|
||||
+
|
||||
+#if OPENSSL_VERSION_NUMBER >= 0x10000000L
|
||||
+#define SSL_CONST const
|
||||
+#else
|
||||
+#define SSL_CONST
|
||||
+#endif
|
||||
+
|
||||
// This gets all the available ciphers from OpenSSL
|
||||
bool KCryptoConfig::loadCiphers() {
|
||||
unsigned int i;
|
||||
SSL_CTX *ctx;
|
||||
SSL *ssl;
|
||||
-const SSL_METHOD *meth;
|
||||
+SSL_CONST SSL_METHOD *meth;
|
||||
|
||||
SSLv2Box->clear();
|
||||
SSLv3Box->clear();
|
||||
@@ -2337,7 +2344,7 @@
|
||||
CipherItem *item;
|
||||
for (i=0; ; i++) {
|
||||
int j, k;
|
||||
- const SSL_CIPHER *sc;
|
||||
+ SSL_CONST SSL_CIPHER *sc;
|
||||
sc = (meth->get_cipher)(i);
|
||||
if (!sc)
|
||||
break;
|
||||
@@ -2365,7 +2372,7 @@
|
||||
|
||||
for (i=0; ; i++) {
|
||||
int j, k;
|
||||
- const SSL_CIPHER *sc;
|
||||
+ SSL_CONST SSL_CIPHER *sc;
|
||||
sc = (meth->get_cipher)(i);
|
||||
if (!sc)
|
||||
break;
|
@ -1,13 +0,0 @@
|
||||
Index: kdebase/kcontrol/randr/krandrbindings.cpp
|
||||
===================================================================
|
||||
--- kdebase/kcontrol/randr/krandrbindings.cpp (revision 1221325)
|
||||
+++ kdebase/kcontrol/randr/krandrbindings.cpp (revision 1221326)
|
||||
@@ -28,7 +28,7 @@
|
||||
|
||||
keys->insert( "Program:krandrtray", i18n("Display Control") );
|
||||
|
||||
- DEF( I18N_NOOP("Switch Displays"), KShortcut::KShortcut(TQString("XF86Display")), KShortcut::KShortcut(TQString("XF86Display")), slotCycleDisplays() );
|
||||
+ DEF( I18N_NOOP("Switch Displays"), KShortcut(TQString("XF86Display")), KShortcut(TQString("XF86Display")), slotCycleDisplays() );
|
||||
|
||||
#undef DEF
|
||||
#undef WIN
|
@ -1,10 +0,0 @@
|
||||
--- kdebase/khotkeys/arts/CMakeLists.txt.ORI 2012-08-07 21:21:45.840401244 +0200
|
||||
+++ kdebase/khotkeys/arts/CMakeLists.txt 2012-08-07 21:22:06.260974727 +0200
|
||||
@@ -25,6 +25,7 @@
|
||||
${CMAKE_SOURCE_DIR}/khotkeys/kcontrol
|
||||
${TDE_INCLUDE_DIR}
|
||||
${TQT_INCLUDE_DIRS}
|
||||
+ ${ARTS_INCLUDE_DIRS}
|
||||
)
|
||||
|
||||
link_directories(
|
@ -1,27 +0,0 @@
|
||||
--- ./libkonq/konqbookmarkmanager.h.ori 2013-05-08 23:26:03.558587419 +0200
|
||||
+++ ./libkonq/konqbookmarkmanager.h 2013-05-08 23:29:25.317517880 +0200
|
||||
@@ -3,6 +3,8 @@
|
||||
|
||||
#include <kbookmarkmanager.h>
|
||||
#include <kstandarddirs.h>
|
||||
+#include <kurl.h>
|
||||
+#include <kio/job.h>
|
||||
#include <libkonq_export.h>
|
||||
|
||||
class LIBKONQ_EXPORT KonqBookmarkManager
|
||||
@@ -11,7 +13,14 @@
|
||||
static KBookmarkManager * self() {
|
||||
if ( !s_bookmarkManager )
|
||||
{
|
||||
- TQString bookmarksFile = locateLocal("data", TQString::fromLatin1("konqueror/bookmarks.xml"));
|
||||
+ TQString globalBookmarkFile = locate( "data", TQString::fromLatin1( "konqueror/bookmarks.xml" ) );
|
||||
+ TQString bookmarksFile = locateLocal( "data", TQString::fromLatin1("konqueror/bookmarks.xml" ), true);
|
||||
+ if ( globalBookmarkFile != TQString::null && bookmarksFile == TQString::null ) {
|
||||
+ KIO::file_copy(
|
||||
+ KURL::fromPathOrURL( globalBookmarkFile ),
|
||||
+ KURL::fromPathOrURL( bookmarksFile ), -1, false, false
|
||||
+ );
|
||||
+ }
|
||||
s_bookmarkManager = KBookmarkManager::managerForFile( bookmarksFile );
|
||||
}
|
||||
return s_bookmarkManager;
|
@ -1,37 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre100+073a32f9/kcontrol/displayconfig/displayconfig.desktop.ORI 2013-05-11 14:53:30.914170537 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre100+073a32f9/kcontrol/displayconfig/displayconfig.desktop 2013-05-11 14:53:59.495582944 +0200
|
||||
@@ -2,6 +2,7 @@
|
||||
Categories=Qt;KDE;X-KDE-settings-system;
|
||||
Comment=Configure display
|
||||
Comment[en_US]=Configure display
|
||||
+Comment[fr]=Configuration de l'affichage
|
||||
DocPath=kcontrol/displayconfig.html
|
||||
Exec=kcmshell displayconfig
|
||||
GenericName=
|
||||
@@ -11,6 +12,7 @@
|
||||
MimeType=
|
||||
Name=Monitor & Display
|
||||
Name[en_US]=Monitor & Display
|
||||
+Name[fr]=Moniteurs & Affichage
|
||||
NoDisplay=false
|
||||
Path=
|
||||
StartupNotify=true
|
||||
--- trinity-tdebase-3.5.13.2~pre100+073a32f9/kcontrol/iccconfig/iccconfig.desktop.ORI 2013-05-11 21:21:04.241337141 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre100+073a32f9/kcontrol/iccconfig/iccconfig.desktop 2013-05-11 21:21:44.782537929 +0200
|
||||
@@ -12,6 +12,7 @@
|
||||
Categories=Qt;KDE;X-KDE-settings-hardware;
|
||||
Comment=Configure display ICC profile
|
||||
Comment[en_US]=Configure display ICC profile
|
||||
+Comment[fr]=Configurer les profils de couleurs ICC
|
||||
DocPath=kcontrol/iccconfig.html
|
||||
GenericName=
|
||||
GenericName[en_US]=
|
||||
@@ -19,5 +20,6 @@
|
||||
MimeType=
|
||||
Name=ICC Color Profile
|
||||
Name[en_US]=ICC Color Profile
|
||||
+Name[fr]=Profils de couleurs ICC
|
||||
|
||||
-NoDisplay=false
|
||||
\ Pas de fin de ligne à la fin du fichier
|
||||
+NoDisplay=false
|
@ -1,13 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2/kioslave/media/mediamanager/halbackend.cpp.slash 2013-08-15 18:24:06.092882626 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/kioslave/media/mediamanager/halbackend.cpp 2013-08-15 18:32:20.535855050 +0200
|
||||
@@ -554,6 +554,10 @@
|
||||
media_name.replace(pattern, i18n(pattern.utf8()));
|
||||
medium->setLabel(media_name);
|
||||
} else {
|
||||
+ // If media_name begins with '%', it is likely to be a directory path.
|
||||
+ if( media_name.at(0) == '%') {
|
||||
+ media_name.replace(QChar('%'), "/");
|
||||
+ }
|
||||
medium->setLabel(i18n(media_name.utf8()));
|
||||
}
|
||||
|
@ -1,51 +0,0 @@
|
||||
commit c383da9dc680e5e79e75b84003eca7bfa08dd991
|
||||
Author: Timothy Pearson <kb9vqf@pearsoncomputing.net>
|
||||
Date: 1400559462 -0500
|
||||
|
||||
Forward port KDE SVN r803253 to fix potential security hole
|
||||
|
||||
diff --git a/config.h.cmake b/config.h.cmake
|
||||
index f5ebeeb..cacb97c 100644
|
||||
--- a/config.h.cmake
|
||||
+++ b/config.h.cmake
|
||||
@@ -182,6 +182,7 @@
|
||||
|
||||
// ksmserver
|
||||
#cmakedefine DBUS_SYSTEM_BUS "@DBUS_SYSTEM_BUS@"
|
||||
+#cmakedefine HAVE__ICETRANSNOLISTEN 1
|
||||
|
||||
// ksplashml
|
||||
#cmakedefine HAVE_XINERAMA 1
|
||||
diff --git a/ksmserver/CMakeLists.txt b/ksmserver/CMakeLists.txt
|
||||
index fdd521b..8578b01 100644
|
||||
--- a/ksmserver/CMakeLists.txt
|
||||
+++ b/ksmserver/CMakeLists.txt
|
||||
@@ -9,6 +9,8 @@
|
||||
#
|
||||
#################################################
|
||||
|
||||
+include( ConfigureChecks.cmake )
|
||||
+
|
||||
if( NOT DBUS_SYSTEM_BUS )
|
||||
set( DBUS_SYSTEM_BUS "unix:path=/var/run/dbus/system_bus_socket" CACHE INTERNAL "" FORCE )
|
||||
endif()
|
||||
diff --git a/ksmserver/ConfigureChecks.cmake b/ksmserver/ConfigureChecks.cmake
|
||||
new file mode 100644
|
||||
index 0000000..4f8cf79
|
||||
--- /dev/null
|
||||
+++ b/ksmserver/ConfigureChecks.cmake
|
||||
@@ -0,0 +1,12 @@
|
||||
+#################################################
|
||||
+#
|
||||
+# (C) 2014 Timothy Pearson
|
||||
+# kb9vqf (AT) pearsoncomputing (DOT) net
|
||||
+#
|
||||
+# Improvements and feedback are welcome
|
||||
+#
|
||||
+# This file is released under GPL >= 2
|
||||
+#
|
||||
+#################################################
|
||||
+
|
||||
+check_library_exists( ICE _IceTransNoListen "" HAVE__ICETRANSNOLISTEN )
|
||||
\ No newline at end of file
|
||||
|
@ -1,10 +0,0 @@
|
||||
diff -Naur kdebase-3.5.10/kioslave/media/services/media_safelyremove.desktop kdebase-3.5.10.yeni/kioslave/media/services/media_safelyremove.desktop
|
||||
--- kdebase-3.5.10/kioslave/media/services/media_safelyremove.desktop 2008-08-19 21:16:59.000000000 +0300
|
||||
+++ kdebase-3.5.10.yeni/kioslave/media/services/media_safelyremove.desktop 2009-12-22 00:51:57.122282682 +0200
|
||||
@@ -71,5 +71,5 @@
|
||||
Name[wa]=Ositer e såvrité
|
||||
Name[zh_CN]=安全删除
|
||||
Name[zh_TW]=安全的移除
|
||||
-Exec=kio_media_mounthelper -s %u
|
||||
+Exec=kio_media_mounthelper -u %u
|
||||
|
@ -1,16 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2/kdm/config.def.ori 2013-09-07 19:18:58.424732176 +0200
|
||||
+++ trinity-tdebase-3.5.13.2/kdm/config.def 2013-09-07 19:20:24.310872875 +0200
|
||||
@@ -48,10 +48,10 @@
|
||||
#endif
|
||||
|
||||
#if defined(BSD) || defined(__linux__)
|
||||
-# define DEF_USER_PATH "/usr/local/bin:/opt/trinity/bin:/usr/bin:/bin:/opt/trinity/games:/usr/games"
|
||||
-# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/opt/trinity/sbin:/usr/sbin:/opt/trinity/bin:/usr/bin:/sbin:/bin"
|
||||
+# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games"
|
||||
+# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/opt/trinity/sbin:/usr/sbin:/opt/trinity/bin:/usr/bin:/sbin:/bin:/usr/X11R6/bin"
|
||||
#else
|
||||
-# define DEF_USER_PATH "/usr/local/bin:/opt/trinity/bin:/usr/bin:/bin:/opt/trinity/games:/usr/games:/usr/ucb"
|
||||
+# define DEF_USER_PATH "/usr/local/bin:/usr/bin:/bin:/usr/games:/usr/ucb"
|
||||
# define DEF_SYSTEM_PATH "/usr/local/sbin:/usr/local/bin:/opt/trinity/sbin:/usr/sbin:/opt/trinity/bin:/usr/bin:/sbin:/bin:/etc:/usr/ucb"
|
||||
#endif
|
||||
|
File diff suppressed because it is too large
Load Diff
@ -1,701 +0,0 @@
|
||||
--- ./kcontrol/background/bgadvanced.cpp.ORI 2013-05-09 14:42:39.036269356 +0200
|
||||
+++ ./kcontrol/background/bgadvanced.cpp 2013-05-09 14:43:12.485581123 +0200
|
||||
@@ -44,6 +44,7 @@
|
||||
#include "bgadvanced.h"
|
||||
#include "bgadvanced_ui.h"
|
||||
|
||||
+#include "KCrossBGRender.h"
|
||||
#include <X11/Xlib.h>
|
||||
|
||||
/**** BGAdvancedDialog ****/
|
||||
@@ -63,7 +64,7 @@
|
||||
}
|
||||
|
||||
|
||||
-BGAdvancedDialog::BGAdvancedDialog(KBackgroundRenderer *_r,
|
||||
+BGAdvancedDialog::BGAdvancedDialog(KCrossBGRender *_r,
|
||||
TQWidget *parent,
|
||||
bool m_multidesktop)
|
||||
: KDialogBase(parent, "BGAdvancedDialog",
|
||||
--- ./kcontrol/background/bgdialog.cpp.ORI 2013-05-09 14:46:43.556237673 +0200
|
||||
+++ ./kcontrol/background/bgdialog.cpp 2013-05-09 14:47:33.054218951 +0200
|
||||
@@ -63,6 +63,7 @@
|
||||
#include "bgwallpaper.h"
|
||||
#include "bgadvanced.h"
|
||||
#include "bgdialog.h"
|
||||
+#include "KCrossBGRender.h"
|
||||
|
||||
#define NR_PREDEF_PATTERNS 6
|
||||
|
||||
@@ -194,19 +195,19 @@
|
||||
int eDesk = i>0 ? i-1 : 0;
|
||||
|
||||
// Setup the merged-screen renderer
|
||||
- KBackgroundRenderer * r = new KBackgroundRenderer(eDesk, 0, false, _config);
|
||||
+ KCrossBGRender * r = new KCrossBGRender(eDesk, 0, false, _config);
|
||||
m_renderer[i].insert( 0, r );
|
||||
connect( r, TQT_SIGNAL(imageDone(int,int)), TQT_SLOT(slotPreviewDone(int,int)) );
|
||||
|
||||
// Setup the common-screen renderer
|
||||
- r = new KBackgroundRenderer(eDesk, 0, true, _config);
|
||||
+ r = new KCrossBGRender(eDesk, 0, true, _config);
|
||||
m_renderer[i].insert( 1, r );
|
||||
connect( r, TQT_SIGNAL(imageDone(int,int)), TQT_SLOT(slotPreviewDone(int,int)) );
|
||||
|
||||
// Setup the remaining renderers for each screen
|
||||
for (unsigned j=0; j < m_numScreens; ++j )
|
||||
{
|
||||
- r = new KBackgroundRenderer(eDesk, j, true, _config);
|
||||
+ r = new KCrossBGRender(eDesk, j, true, _config);
|
||||
m_renderer[i].insert( j+2, r );
|
||||
connect( r, TQT_SIGNAL(imageDone(int,int)), TQT_SLOT(slotPreviewDone(int,int)) );
|
||||
}
|
||||
@@ -221,14 +222,14 @@
|
||||
}
|
||||
|
||||
// set up the common desktop renderer
|
||||
- KBackgroundRenderer * r = new KBackgroundRenderer(0, 0, false, _config);
|
||||
+ KCrossBGRender * r = new KCrossBGRender(0, 0, false, _config);
|
||||
m_renderer[0].insert(0, r);
|
||||
connect(r, TQT_SIGNAL(imageDone(int,int)), TQT_SLOT(slotPreviewDone(int,int)));
|
||||
|
||||
// set up all the other desktop renderers
|
||||
for (unsigned i = 0; i < m_numDesks; ++i)
|
||||
{
|
||||
- r = new KBackgroundRenderer(i, 0, false, _config);
|
||||
+ r = new KCrossBGRender(i, 0, false, _config);
|
||||
m_renderer[i+1].insert(0, r);
|
||||
connect(r, TQT_SIGNAL(imageDone(int,int)), TQT_SLOT(slotPreviewDone(int,int)));
|
||||
}
|
||||
@@ -266,7 +267,7 @@
|
||||
delete m_pGlobals;
|
||||
}
|
||||
|
||||
-KBackgroundRenderer * BGDialog::eRenderer()
|
||||
+KCrossBGRender * BGDialog::eRenderer()
|
||||
{
|
||||
return m_renderer[m_eDesk][m_eScreen];
|
||||
}
|
||||
@@ -681,7 +682,7 @@
|
||||
|
||||
void BGDialog::updateUI()
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
m_comboDesktop->setCurrentItem(m_eDesk);
|
||||
m_comboScreen->setCurrentItem(m_eScreen);
|
||||
|
||||
@@ -819,7 +820,7 @@
|
||||
if (!m_previewUpdates)
|
||||
return;
|
||||
|
||||
- KBackgroundRenderer * r = m_renderer[m_eDesk][(m_eScreen>1) ? (screen_done+2) : m_eScreen];
|
||||
+ KCrossBGRender * r = m_renderer[m_eDesk][(m_eScreen>1) ? (screen_done+2) : m_eScreen];
|
||||
|
||||
if (r->image().isNull())
|
||||
return;
|
||||
@@ -858,7 +859,7 @@
|
||||
|
||||
void BGDialog::slotWallpaperTypeChanged(int i)
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
r->stop();
|
||||
|
||||
// No picture
|
||||
@@ -984,7 +985,7 @@
|
||||
|
||||
void BGDialog::slotWallpaperPos(int mode)
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
|
||||
mode++;
|
||||
m_wallpaperPos = mode;
|
||||
@@ -1002,7 +1003,7 @@
|
||||
|
||||
void BGDialog::slotSetupMulti()
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
|
||||
BGMultiWallpaperDialog dlg(r, topLevelWidget());
|
||||
if (dlg.exec() == TQDialog::Accepted) {
|
||||
@@ -1018,7 +1019,7 @@
|
||||
|
||||
void BGDialog::slotPrimaryColor(const TQColor &color)
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
|
||||
if (color == r->colorA())
|
||||
return;
|
||||
@@ -1033,7 +1034,7 @@
|
||||
|
||||
void BGDialog::slotSecondaryColor(const TQColor &color)
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
|
||||
if (color == r->colorB())
|
||||
return;
|
||||
@@ -1048,7 +1049,7 @@
|
||||
|
||||
void BGDialog::slotPattern(int pattern)
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
r->stop();
|
||||
bool bSecondaryEnabled = true;
|
||||
if (pattern < NR_PREDEF_PATTERNS)
|
||||
@@ -1085,7 +1086,7 @@
|
||||
// Copy stuff
|
||||
for (unsigned desk = 0; desk < m_numDesks+1; ++desk )
|
||||
{
|
||||
- KBackgroundRenderer *master = m_renderer[desk][1];
|
||||
+ KCrossBGRender *master = m_renderer[desk][1];
|
||||
for (unsigned screen = 0; screen < m_numScreens; ++screen)
|
||||
{
|
||||
m_renderer[desk][screen+2]->copyConfig(master);
|
||||
@@ -1140,7 +1141,7 @@
|
||||
// Copy stuff
|
||||
for (unsigned screen = 0; screen < m_renderer[0].size(); ++screen )
|
||||
{
|
||||
- KBackgroundRenderer *master = m_renderer[0][screen];
|
||||
+ KCrossBGRender *master = m_renderer[0][screen];
|
||||
for (unsigned desk = 0; desk < m_numDesks; ++desk )
|
||||
{
|
||||
m_renderer[desk+1][screen]->copyConfig(master);
|
||||
@@ -1179,7 +1180,7 @@
|
||||
|
||||
void BGDialog::slotAdvanced()
|
||||
{
|
||||
- KBackgroundRenderer *r = eRenderer();
|
||||
+ KCrossBGRender *r = eRenderer();
|
||||
|
||||
m_previewUpdates = false;
|
||||
BGAdvancedDialog dlg(r, topLevelWidget(), m_multidesktop);
|
||||
@@ -1301,7 +1302,7 @@
|
||||
{
|
||||
for (unsigned j = 0; j < m_renderer[i].size(); ++j )
|
||||
{
|
||||
- KBackgroundRenderer * r = m_renderer[i][j];
|
||||
+ KCrossBGRender * r = m_renderer[i][j];
|
||||
if( r->isActive())
|
||||
r->stop();
|
||||
r->desktopResized();
|
||||
--- ./kcontrol/background/bgadvanced.h.ori 2013-05-09 14:49:18.551047531 +0200
|
||||
+++ ./kcontrol/background/bgadvanced.h 2013-05-09 14:49:23.509945456 +0200
|
||||
@@ -33,14 +33,14 @@
|
||||
class TQSpinBox;
|
||||
|
||||
class BGAdvancedBase;
|
||||
-class KBackgroundRenderer;
|
||||
+class KCrossBGRender;
|
||||
class KBackgroundProgram;
|
||||
|
||||
class BGAdvancedDialog : public KDialogBase
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
- BGAdvancedDialog(KBackgroundRenderer *_r, TQWidget *parent, bool m_multidesktop);
|
||||
+ BGAdvancedDialog(KCrossBGRender *_r, TQWidget *parent, bool m_multidesktop);
|
||||
|
||||
void setCacheSize(int s);
|
||||
int cacheSize();
|
||||
@@ -79,7 +79,7 @@
|
||||
void slotEnableProgram(bool b);
|
||||
|
||||
private:
|
||||
- KBackgroundRenderer *r;
|
||||
+ KCrossBGRender *r;
|
||||
|
||||
BGAdvancedBase *dlg;
|
||||
|
||||
--- ./kcontrol/background/bgdialog.h.ORI 2013-05-09 14:49:59.223210319 +0200
|
||||
+++ ./kcontrol/background/bgdialog.h 2013-05-09 14:50:40.215366483 +0200
|
||||
@@ -28,6 +28,7 @@
|
||||
#include "bgrender.h"
|
||||
#include "bgsettings.h"
|
||||
#include "bgdefaults.h"
|
||||
+#include "KCrossBGRender.h"
|
||||
|
||||
class BGMonitorArrangement;
|
||||
class KStandardDirs;
|
||||
@@ -53,7 +54,7 @@
|
||||
protected:
|
||||
void initUI();
|
||||
void updateUI();
|
||||
- KBackgroundRenderer * eRenderer();
|
||||
+ KCrossBGRender * eRenderer();
|
||||
|
||||
void setWallpaper(const TQString &);
|
||||
|
||||
@@ -95,7 +96,7 @@
|
||||
int m_screen;
|
||||
int m_eDesk;
|
||||
int m_eScreen;
|
||||
- TQValueVector< TQPtrVector<KBackgroundRenderer> > m_renderer; // m_renderer[desk][screen]
|
||||
+ TQValueVector< TQPtrVector<KCrossBGRender> > m_renderer; // m_renderer[desk][screen]
|
||||
TQMap<TQString,int> m_wallpaper;
|
||||
TQStringList m_patterns;
|
||||
int m_slideShowRandom; // Remembers last Slide Show setting
|
||||
--- ./kcontrol/background/bgwallpaper.h.ORI 2013-05-09 14:51:55.150823830 +0200
|
||||
+++ ./kcontrol/background/bgwallpaper.h 2013-05-09 14:52:37.513949453 +0200
|
||||
@@ -27,6 +27,7 @@
|
||||
#include <tqstringlist.h>
|
||||
|
||||
#include <kdialogbase.h>
|
||||
+#include <kdebug.h>
|
||||
|
||||
class BGMultiWallpaperBase;
|
||||
class KBackgroundSettings;
|
||||
@@ -55,12 +56,16 @@
|
||||
void slotMoveDown();
|
||||
void slotOk();
|
||||
void slotItemSelected( TQListBoxItem * );
|
||||
+ void slotCheckScheduled(bool);
|
||||
+ void slotChangedXML(const TQString&);
|
||||
+
|
||||
private:
|
||||
void setEnabledMoveButtons();
|
||||
|
||||
KBackgroundSettings *m_pSettings;
|
||||
|
||||
BGMultiWallpaperBase *dlg;
|
||||
+ TQString lastXml;
|
||||
};
|
||||
|
||||
#endif
|
||||
--- ./kcontrol/background/bgwallpaper.cpp.ORI 2013-05-09 14:53:01.461452198 +0200
|
||||
+++ ./kcontrol/background/bgwallpaper.cpp 2013-05-09 14:57:27.712924157 +0200
|
||||
@@ -26,12 +26,14 @@
|
||||
#include <tqevent.h>
|
||||
#include <tqpushbutton.h>
|
||||
#include <tqspinbox.h>
|
||||
+#include <tqgroupbox.h>
|
||||
|
||||
#include <kfiledialog.h>
|
||||
#include <kimageio.h>
|
||||
#include <klocale.h>
|
||||
#include <kstandarddirs.h>
|
||||
#include <kurldrag.h>
|
||||
+#include <kurlrequester.h>
|
||||
|
||||
#include "bgsettings.h"
|
||||
#include "bgwallpaper.h"
|
||||
@@ -119,10 +121,41 @@
|
||||
connect(dlg->m_buttonMoveUp, TQT_SIGNAL(clicked()), TQT_SLOT(slotMoveUp()));
|
||||
connect(dlg->m_buttonMoveDown, TQT_SIGNAL(clicked()), TQT_SLOT(slotMoveDown()));
|
||||
connect(dlg->m_listImages, TQT_SIGNAL(clicked ( TQListBoxItem * )), TQT_SLOT(slotItemSelected( TQListBoxItem *)));
|
||||
+ connect(dlg->chkScheduled, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotCheckScheduled(bool)));
|
||||
+ connect(dlg->kurlXmlFile, TQT_SIGNAL(textChanged(const TQString&)), TQT_SLOT(slotChangedXML(const TQString &)));
|
||||
+
|
||||
dlg->m_buttonRemove->setEnabled( false );
|
||||
dlg->m_buttonMoveUp->setEnabled( false );
|
||||
dlg->m_buttonMoveDown->setEnabled( false );
|
||||
|
||||
+ // XML Stuffs
|
||||
+ dlg->kurlXmlFile->setFilter("*.xml");
|
||||
+ if (m_pSettings->wallpaperList()[0].endsWith("xml",false)) {
|
||||
+ dlg->kurlXmlFile->setURL(m_pSettings->wallpaperList()[0]);
|
||||
+ dlg->chkScheduled->setChecked(true);
|
||||
+ dlg->m_listImages->removeItem(0);
|
||||
+ lastXml = m_pSettings->wallpaperList()[0];
|
||||
+ } else {
|
||||
+ dlg->kurlXmlFile->setURL("/usr/share/mdk/backgrounds/Mandriva.xml");
|
||||
+ dlg->chkScheduled->setChecked(false);
|
||||
+ slotCheckScheduled(false);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void BGMultiWallpaperDialog::slotCheckScheduled(bool state)
|
||||
+{
|
||||
+ if ( state == true ) {
|
||||
+ dlg->grpNormalShow->setEnabled(false);
|
||||
+ dlg->kurlXmlFile->setEnabled(true);
|
||||
+ } else {
|
||||
+ dlg->grpNormalShow->setEnabled(true);
|
||||
+ dlg->kurlXmlFile->setEnabled(false);
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void BGMultiWallpaperDialog::slotChangedXML(const TQString & file)
|
||||
+{
|
||||
+ lastXml = file;
|
||||
}
|
||||
|
||||
void BGMultiWallpaperDialog::slotItemSelected( TQListBoxItem * )
|
||||
@@ -222,15 +255,38 @@
|
||||
|
||||
void BGMultiWallpaperDialog::slotOk()
|
||||
{
|
||||
+ bool useXml = false;
|
||||
+ // Looking to XML
|
||||
+ if (dlg->chkScheduled->isChecked() && lastXml.endsWith("xml",false)) {
|
||||
+ useXml = true;
|
||||
+ kdDebug() << "Adding XML" << lastXml;
|
||||
+ dlg->m_listImages->insertItem(lastXml,0);
|
||||
+ }
|
||||
+
|
||||
+ kdDebug() << dlg->m_listImages << endl;
|
||||
+
|
||||
TQStringList lst;
|
||||
- for (unsigned i=0; i < dlg->m_listImages->count(); i++)
|
||||
+ for (unsigned i=0; i < dlg->m_listImages->count(); i++) {
|
||||
- lst.append(dlg->m_listImages->text(i));
|
||||
+ lst.append(dlg->m_listImages->text(i));
|
||||
+ }
|
||||
m_pSettings->setWallpaperList(lst);
|
||||
m_pSettings->setWallpaperChangeInterval(dlg->m_spinInterval->value());
|
||||
- if (dlg->m_cbRandom->isChecked())
|
||||
+ if (dlg->m_cbRandom->isChecked()) {
|
||||
m_pSettings->setMultiWallpaperMode(KBackgroundSettings::Random);
|
||||
- else
|
||||
+ } else {
|
||||
m_pSettings->setMultiWallpaperMode(KBackgroundSettings::InOrder);
|
||||
+ }
|
||||
+
|
||||
+ if(useXml) {
|
||||
+ m_pSettings->changeWallpaper();
|
||||
+ m_pSettings->setWallpaper(lastXml);
|
||||
+ m_pSettings->changeWallpaper();
|
||||
+ } else {
|
||||
+ m_pSettings->changeWallpaper();
|
||||
+ m_pSettings->setWallpaper(lst[0]);
|
||||
+ m_pSettings->changeWallpaper();
|
||||
+ }
|
||||
+
|
||||
accept();
|
||||
}
|
||||
|
||||
--- kdebase-3.5.9/kcontrol/background/bgwallpaper_ui.ui.kbg_trans 2008-03-17 11:06:49.000000000 -0300
|
||||
+++ kdebase-3.5.9/kcontrol/background/bgwallpaper_ui.ui 2008-03-17 11:07:13.000000000 -0300
|
||||
@@ -1,4 +1,4 @@
|
||||
-<!DOCTYPE UI><UI version="3.1" stdsetdef="1">
|
||||
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>BGMultiWallpaperBase</class>
|
||||
<widget class="TQWidget">
|
||||
<property name="name">
|
||||
@@ -8,155 +8,209 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
- <width>410</width>
|
||||
- <height>196</height>
|
||||
+ <width>499</width>
|
||||
+ <height>526</height>
|
||||
</rect>
|
||||
</property>
|
||||
- <grid>
|
||||
+ <property name="caption">
|
||||
+ <string>BGMultiWallPaperBase</string>
|
||||
+ </property>
|
||||
+ <vbox>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
<property name="margin">
|
||||
<number>0</number>
|
||||
</property>
|
||||
- <widget class="TQLabel" row="2" column="0">
|
||||
- <property name="name">
|
||||
- <cstring>textLabel2</cstring>
|
||||
- </property>
|
||||
- <property name="text">
|
||||
- <string>Show the following pictures:</string>
|
||||
- </property>
|
||||
- </widget>
|
||||
- <widget class="TQCheckBox" row="1" column="0">
|
||||
- <property name="name">
|
||||
- <cstring>m_cbRandom</cstring>
|
||||
- </property>
|
||||
- <property name="text">
|
||||
- <string>&Show pictures in random order</string>
|
||||
- </property>
|
||||
- </widget>
|
||||
- <widget class="TQLayoutWidget" row="0" column="0">
|
||||
+ <widget class="TQLayoutWidget">
|
||||
<property name="name">
|
||||
- <cstring>layout3</cstring>
|
||||
+ <cstring>layout8</cstring>
|
||||
</property>
|
||||
<hbox>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
- <widget class="TQLabel">
|
||||
+ <widget class="TQCheckBox">
|
||||
<property name="name">
|
||||
- <cstring>textLabel1</cstring>
|
||||
+ <cstring>chkScheduled</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
- <string>Change &picture after:</string>
|
||||
- </property>
|
||||
- <property name="buddy" stdset="0">
|
||||
- <cstring>m_spinInterval</cstring>
|
||||
+ <string>Scheduled Slide Show</string>
|
||||
</property>
|
||||
</widget>
|
||||
- <widget class="TQSpinBox">
|
||||
+ <widget class="KURLRequester">
|
||||
<property name="name">
|
||||
- <cstring>m_spinInterval</cstring>
|
||||
+ <cstring>kurlXmlFile</cstring>
|
||||
</property>
|
||||
</widget>
|
||||
- <spacer>
|
||||
- <property name="name">
|
||||
- <cstring>spacer4</cstring>
|
||||
- </property>
|
||||
- <property name="orientation">
|
||||
- <enum>Horizontal</enum>
|
||||
- </property>
|
||||
- <property name="sizeType">
|
||||
- <enum>Expanding</enum>
|
||||
- </property>
|
||||
- <property name="sizeHint">
|
||||
- <size>
|
||||
- <width>20</width>
|
||||
- <height>20</height>
|
||||
- </size>
|
||||
- </property>
|
||||
- </spacer>
|
||||
</hbox>
|
||||
</widget>
|
||||
- <widget class="TQLayoutWidget" row="3" column="0">
|
||||
+ <widget class="QGroupBox">
|
||||
<property name="name">
|
||||
- <cstring>layout4</cstring>
|
||||
+ <cstring>grpNormalShow</cstring>
|
||||
</property>
|
||||
- <grid>
|
||||
+ <property name="title">
|
||||
+ <string></string>
|
||||
+ </property>
|
||||
+ <vbox>
|
||||
<property name="name">
|
||||
<cstring>unnamed</cstring>
|
||||
</property>
|
||||
- <widget class="BGMultiWallpaperList" row="0" column="0" rowspan="5" colspan="1">
|
||||
+ <widget class="TQLayoutWidget">
|
||||
<property name="name">
|
||||
- <cstring>m_listImages</cstring>
|
||||
- </property>
|
||||
- <property name="sizePolicy">
|
||||
- <sizepolicy>
|
||||
- <hsizetype>3</hsizetype>
|
||||
- <vsizetype>3</vsizetype>
|
||||
- <horstretch>0</horstretch>
|
||||
- <verstretch>0</verstretch>
|
||||
- </sizepolicy>
|
||||
- </property>
|
||||
- <property name="minimumSize">
|
||||
- <size>
|
||||
- <width>300</width>
|
||||
- <height>100</height>
|
||||
- </size>
|
||||
+ <cstring>layout3</cstring>
|
||||
</property>
|
||||
+ <hbox>
|
||||
+ <property name="name">
|
||||
+ <cstring>unnamed</cstring>
|
||||
+ </property>
|
||||
+ <widget class="TQLabel">
|
||||
+ <property name="name">
|
||||
+ <cstring>textLabel1_2</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>Change &picture after:</string>
|
||||
+ </property>
|
||||
+ <property name="buddy" stdset="0">
|
||||
+ <cstring>m_spinInterval</cstring>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <widget class="TQSpinBox">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_spinInterval</cstring>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <spacer>
|
||||
+ <property name="name">
|
||||
+ <cstring>spacer4</cstring>
|
||||
+ </property>
|
||||
+ <property name="orientation">
|
||||
+ <enum>Horizontal</enum>
|
||||
+ </property>
|
||||
+ <property name="sizeType">
|
||||
+ <enum>Expanding</enum>
|
||||
+ </property>
|
||||
+ <property name="sizeHint">
|
||||
+ <size>
|
||||
+ <width>20</width>
|
||||
+ <height>20</height>
|
||||
+ </size>
|
||||
+ </property>
|
||||
+ </spacer>
|
||||
+ </hbox>
|
||||
</widget>
|
||||
- <widget class="TQPushButton" row="0" column="1">
|
||||
+ <widget class="TQCheckBox">
|
||||
<property name="name">
|
||||
- <cstring>m_buttonAdd</cstring>
|
||||
+ <cstring>m_cbRandom</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
- <string>&Add...</string>
|
||||
- </property>
|
||||
- </widget>
|
||||
- <spacer row="4" column="1">
|
||||
- <property name="name">
|
||||
- <cstring>spacer5</cstring>
|
||||
- </property>
|
||||
- <property name="orientation">
|
||||
- <enum>Vertical</enum>
|
||||
- </property>
|
||||
- <property name="sizeType">
|
||||
- <enum>Expanding</enum>
|
||||
+ <string>&Show pictures in random order</string>
|
||||
</property>
|
||||
- <property name="sizeHint">
|
||||
- <size>
|
||||
- <width>20</width>
|
||||
- <height>20</height>
|
||||
- </size>
|
||||
- </property>
|
||||
- </spacer>
|
||||
- <widget class="TQPushButton" row="1" column="1">
|
||||
- <property name="name">
|
||||
- <cstring>m_buttonRemove</cstring>
|
||||
- </property>
|
||||
- <property name="text">
|
||||
- <string>&Remove</string>
|
||||
+ <property name="accel">
|
||||
+ <string>Alt+S</string>
|
||||
</property>
|
||||
</widget>
|
||||
- <widget class="TQPushButton" row="3" column="1">
|
||||
+ <widget class="TQLabel">
|
||||
<property name="name">
|
||||
- <cstring>m_buttonMoveDown</cstring>
|
||||
+ <cstring>textLabel2</cstring>
|
||||
</property>
|
||||
<property name="text">
|
||||
- <string>Move &Down</string>
|
||||
+ <string>Show the following pictures:</string>
|
||||
</property>
|
||||
</widget>
|
||||
- <widget class="TQPushButton" row="2" column="1">
|
||||
+ <widget class="TQLayoutWidget">
|
||||
<property name="name">
|
||||
- <cstring>m_buttonMoveUp</cstring>
|
||||
- </property>
|
||||
- <property name="text">
|
||||
- <string>Move &Up</string>
|
||||
+ <cstring>layout4</cstring>
|
||||
</property>
|
||||
+ <grid>
|
||||
+ <property name="name">
|
||||
+ <cstring>unnamed</cstring>
|
||||
+ </property>
|
||||
+ <widget class="BGMultiWallpaperList" row="0" column="0" rowspan="5" colspan="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_listImages</cstring>
|
||||
+ </property>
|
||||
+ <property name="sizePolicy">
|
||||
+ <sizepolicy>
|
||||
+ <hsizetype>3</hsizetype>
|
||||
+ <vsizetype>3</vsizetype>
|
||||
+ <horstretch>0</horstretch>
|
||||
+ <verstretch>0</verstretch>
|
||||
+ </sizepolicy>
|
||||
+ </property>
|
||||
+ <property name="minimumSize">
|
||||
+ <size>
|
||||
+ <width>300</width>
|
||||
+ <height>100</height>
|
||||
+ </size>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <widget class="TQPushButton" row="0" column="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_buttonAdd</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>&Add...</string>
|
||||
+ </property>
|
||||
+ <property name="accel">
|
||||
+ <string>Alt+A</string>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <spacer row="4" column="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>spacer5</cstring>
|
||||
+ </property>
|
||||
+ <property name="orientation">
|
||||
+ <enum>Vertical</enum>
|
||||
+ </property>
|
||||
+ <property name="sizeType">
|
||||
+ <enum>Expanding</enum>
|
||||
+ </property>
|
||||
+ <property name="sizeHint">
|
||||
+ <size>
|
||||
+ <width>20</width>
|
||||
+ <height>20</height>
|
||||
+ </size>
|
||||
+ </property>
|
||||
+ </spacer>
|
||||
+ <widget class="TQPushButton" row="1" column="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_buttonRemove</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>&Remove</string>
|
||||
+ </property>
|
||||
+ <property name="accel">
|
||||
+ <string>Alt+R</string>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <widget class="TQPushButton" row="3" column="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_buttonMoveDown</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>Move &Down</string>
|
||||
+ </property>
|
||||
+ <property name="accel">
|
||||
+ <string>Alt+D</string>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ <widget class="TQPushButton" row="2" column="1">
|
||||
+ <property name="name">
|
||||
+ <cstring>m_buttonMoveUp</cstring>
|
||||
+ </property>
|
||||
+ <property name="text">
|
||||
+ <string>Move &Up</string>
|
||||
+ </property>
|
||||
+ <property name="accel">
|
||||
+ <string>Alt+U</string>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ </grid>
|
||||
</widget>
|
||||
- </grid>
|
||||
+ </vbox>
|
||||
</widget>
|
||||
- </grid>
|
||||
+ </vbox>
|
||||
</widget>
|
||||
<includes>
|
||||
<include location="local" impldecl="in declaration">bgwallpaper.h</include>
|
||||
@@ -164,4 +218,9 @@
|
||||
</includes>
|
||||
<layoutdefaults spacing="3" margin="6"/>
|
||||
<layoutfunctions spacing="KDialog::spacingHint" margin="KDialog::marginHint"/>
|
||||
+<includehints>
|
||||
+ <includehint>kurlrequester.h</includehint>
|
||||
+ <includehint>klineedit.h</includehint>
|
||||
+ <includehint>kpushbutton.h</includehint>
|
||||
+</includehints>
|
||||
</UI>
|
@ -1,136 +0,0 @@
|
||||
--- tdebase/kcontrol/input/xcursor/themepage.cpp.ORI 2013-07-22 19:33:45.153674930 +0200
|
||||
+++ tdebase/kcontrol/input/xcursor/themepage.cpp 2013-07-23 15:24:01.664497762 +0200
|
||||
@@ -33,6 +33,8 @@
|
||||
#include <kio/netaccess.h>
|
||||
#include <ktar.h>
|
||||
|
||||
+#include "../../krdb/krdb.h"
|
||||
+
|
||||
#include <tqlayout.h>
|
||||
#include <tqdir.h>
|
||||
#include <tqpixmap.h>
|
||||
@@ -42,6 +44,7 @@
|
||||
#include <tqpainter.h>
|
||||
#include <tqfileinfo.h>
|
||||
#include <tqpushbutton.h>
|
||||
+#include <dcopref.h>
|
||||
|
||||
#include <cstdlib> // for getenv()
|
||||
|
||||
@@ -53,6 +56,10 @@
|
||||
#include <X11/Xlib.h>
|
||||
#include <X11/Xcursor/Xcursor.h>
|
||||
|
||||
+#ifdef HAVE_XFIXES
|
||||
+# include <X11/extensions/Xfixes.h>
|
||||
+#endif
|
||||
+
|
||||
// Check for older version
|
||||
#if !defined(XCURSOR_LIB_MAJOR) && defined(XCURSOR_MAJOR)
|
||||
# define XCURSOR_LIB_MAJOR XCURSOR_MAJOR
|
||||
@@ -133,6 +140,65 @@
|
||||
{
|
||||
}
|
||||
|
||||
+bool ThemePage::applyTheme(TQString theme, TQString size)
|
||||
+{
|
||||
+#ifdef HAVE_XCURSOR
|
||||
+ if (theme.isEmpty()) {
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
+ // Apply the TDE cursor theme to ourselves
|
||||
+ XcursorSetTheme(qt_xdisplay(), theme.latin1());
|
||||
+
|
||||
+ // Tell klauncher to set the XCURSOR_THEME and XCURSOR_SIZE environment
|
||||
+ // variables when launching applications.
|
||||
+ DCOPRef klauncher("klauncher");
|
||||
+ klauncher.send("setLaunchEnv", TQCString("XCURSOR_THEME"), theme);
|
||||
+ if( !size.isEmpty()) {
|
||||
+ klauncher.send("setLaunchEnv", TQCString("XCURSOR_SIZE"), size);
|
||||
+ }
|
||||
+
|
||||
+ // Update the Xcursor X resources
|
||||
+ runRdb(0);
|
||||
+
|
||||
+ // Apply the TDE cursor size to ourselves
|
||||
+ if (!size.isEmpty()) {
|
||||
+ XcursorSetDefaultSize(qt_xdisplay(), size.toUInt());
|
||||
+ }
|
||||
+
|
||||
+ // Reload the standard cursors
|
||||
+ TQStringList names;
|
||||
+
|
||||
+ // Qt cursors
|
||||
+ names << "left_ptr" << "up_arrow" << "cross" << "wait"
|
||||
+ << "left_ptr_watch" << "ibeam" << "size_ver" << "size_hor"
|
||||
+ << "size_bdiag" << "size_fdiag" << "size_all" << "split_v"
|
||||
+ << "split_h" << "pointing_hand" << "openhand"
|
||||
+ << "closedhand" << "forbidden" << "whats_this" << "copy" << "move" << "link";
|
||||
+
|
||||
+ // X core cursors
|
||||
+ names << "X_cursor" << "right_ptr" << "hand1"
|
||||
+ << "hand2" << "watch" << "xterm"
|
||||
+ << "crosshair" << "left_ptr_watch" << "center_ptr"
|
||||
+ << "sb_h_double_arrow" << "sb_v_double_arrow" << "fleur"
|
||||
+ << "top_left_corner" << "top_side" << "top_right_corner"
|
||||
+ << "right_side" << "bottom_right_corner" << "bottom_side"
|
||||
+ << "bottom_left_corner" << "left_side" << "question_arrow"
|
||||
+ << "pirate";
|
||||
+
|
||||
+ for (int i = 0; i < names.size(); ++i)
|
||||
+ {
|
||||
+ const char* name = (*(names.at(i))).ascii();
|
||||
+ Cursor handle = XcursorLibraryLoadCursor(qt_xdisplay(), name);
|
||||
+ XFixesChangeCursorByName(qt_xdisplay(), handle, TQFile::encodeName(name));
|
||||
+ XFreeCursor(qt_xdisplay(), handle); // Don't leak the cursor
|
||||
+ }
|
||||
+
|
||||
+ return true;
|
||||
+#else // HAVE_XCURSOR
|
||||
+ return false;
|
||||
+#endif
|
||||
+}
|
||||
|
||||
void ThemePage::save()
|
||||
{
|
||||
@@ -145,10 +209,17 @@
|
||||
c.setGroup( "Mouse" );
|
||||
c.writeEntry( "cursorTheme", selectedTheme != "system" ? selectedTheme : TQString::null );
|
||||
|
||||
- KMessageBox::information( this, i18n("You have to restart KDE for these "
|
||||
+ // The Kcontrol panel does not allow to set cursor size for now.
|
||||
+ // So we keep the same size as written in config file.
|
||||
+ TQCString size = c.readEntry("cursorSize", TQString()).local8Bit();
|
||||
+
|
||||
+ if (!applyTheme(selectedTheme, size))
|
||||
+ {
|
||||
+ KMessageBox::information( this, i18n("You have to restart KDE for these "
|
||||
"changes to take effect."), i18n("Cursor Settings Changed"),
|
||||
"CursorSettingsChanged" );
|
||||
-
|
||||
+ }
|
||||
+
|
||||
currentTheme = selectedTheme;
|
||||
}
|
||||
|
||||
--- tdebase/kcontrol/input/xcursor/themepage.h.ORI 2013-07-22 19:49:33.467191658 +0200
|
||||
+++ tdebase/kcontrol/input/xcursor/themepage.h 2013-07-22 19:56:03.990484896 +0200
|
||||
@@ -45,6 +45,7 @@
|
||||
void load();
|
||||
void load( bool useDefaults );
|
||||
void defaults();
|
||||
+ bool applyTheme(TQString theme, TQString size);
|
||||
|
||||
signals:
|
||||
void changed( bool );
|
||||
--- tdebase/kcontrol/input/xcursor/CMakeLists.txt.ORI 2013-07-23 15:24:41.178064068 +0200
|
||||
+++ tdebase/kcontrol/input/xcursor/CMakeLists.txt 2013-07-23 15:27:31.694851294 +0200
|
||||
@@ -21,5 +21,6 @@
|
||||
|
||||
tde_add_library( themepage STATIC_PIC AUTOMOC
|
||||
SOURCES
|
||||
- themepage.cpp previewwidget.cpp
|
||||
+ themepage.cpp previewwidget.cpp ../../krdb/krdb.cpp
|
||||
+ LINK Xfixes
|
||||
)
|
@ -1,20 +0,0 @@
|
||||
--- ./kcontrol/kcontrol/KControl.desktop~ 2013-01-09 02:12:13.000000000 +0100
|
||||
+++ ./kcontrol/kcontrol/KControl.desktop 2013-05-08 17:55:54.250733219 +0200
|
||||
@@ -5,7 +5,7 @@
|
||||
DocPath=kcontrol/index.html
|
||||
X-KDE-StartupNotify=true
|
||||
|
||||
-Name=Control Center
|
||||
+Name=Trinity Control Center
|
||||
Name[af]=Beheer Sentrum
|
||||
Name[ar]=مركز التحكم
|
||||
Name[az]=İdarə Mərkəzi
|
||||
@@ -28,7 +28,7 @@
|
||||
Name[eu]=Kontrol gunea
|
||||
Name[fa]=مرکز کنترل
|
||||
Name[fi]=Ohjauskeskus
|
||||
-Name[fr]=Centre de configuration de KDE
|
||||
+Name[fr]=Centre de configuration de Trinity
|
||||
Name[fy]=Konfiguraasjesintrum
|
||||
Name[ga]=Lárionad Rialaithe
|
||||
Name[gl]=Centro de Control
|
File diff suppressed because it is too large
Load Diff
@ -1,26 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesu/kdesu/sudlg.cpp.kdesu_no_ignore 2013-05-16 22:59:53.633425236 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesu/kdesu/sudlg.cpp 2013-05-16 23:00:04.685200151 +0200
|
||||
@@ -15,7 +15,7 @@
|
||||
#include "sudlg.h"
|
||||
|
||||
KDEsuDialog::KDEsuDialog(TQCString user, TQCString auth_user, bool enableKeep,const TQString& icon, bool withIgnoreButton, int timeout)
|
||||
- : KPasswordDialog(Password, enableKeep, (withIgnoreButton ? User1:NoDefault), icon)
|
||||
+ : KPasswordDialog(Password, enableKeep, 0, icon)
|
||||
{
|
||||
KConfig* config = KGlobal::config();
|
||||
config->setGroup("super-user-command");
|
||||
@@ -34,12 +34,10 @@
|
||||
} else {
|
||||
if (m_User == "root") {
|
||||
prompt = i18n("The action you requested needs root privileges. "
|
||||
- "Please enter root's password below or click "
|
||||
- "Ignore to continue with your current privileges.");
|
||||
+ "Please enter root's password below.");
|
||||
} else {
|
||||
prompt = i18n("The action you requested needs additional privileges. "
|
||||
- "Please enter the password for \"%1\" below or click "
|
||||
- "Ignore to continue with your current privileges.").arg(static_cast<const char *>(m_User));
|
||||
+ "Please enter the password for \"%1\" below.").arg(static_cast<const char *>(m_User));
|
||||
}
|
||||
}
|
||||
setPrompt(prompt);
|
@ -1,229 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre86+807a5445/kcontrol/kdm/kdm-appear.h.kdm_theme_selector 2013-01-09 02:12:13.000000000 +0100
|
||||
+++ trinity-tdebase-3.5.13.2~pre86+807a5445/kcontrol/kdm/kdm-appear.h 2013-05-09 12:58:14.535347383 +0200
|
||||
@@ -26,6 +26,7 @@
|
||||
#include <tqimage.h>
|
||||
#include <tqfileinfo.h>
|
||||
#include <tqpushbutton.h>
|
||||
+#include <tqgroupbox.h>
|
||||
|
||||
#include <kcolorbutton.h>
|
||||
#include <kurl.h>
|
||||
@@ -57,6 +58,7 @@
|
||||
|
||||
void loadColorSchemes(KBackedComboBox *combo);
|
||||
void loadGuiStyles(KBackedComboBox *combo);
|
||||
+ void loadThemes(KBackedComboBox *combo);
|
||||
void loadLanguageList(KLanguageButton *combo);
|
||||
|
||||
bool eventFilter(TQObject *, TQEvent *);
|
||||
@@ -72,6 +74,7 @@
|
||||
private slots:
|
||||
void slotAreaRadioClicked(int id);
|
||||
void slotLogoButtonClicked();
|
||||
+ void slotUsethemeChanged(bool state);
|
||||
void changed();
|
||||
|
||||
private:
|
||||
@@ -85,14 +88,19 @@
|
||||
TQRadioButton *logoRadio;
|
||||
TQLineEdit *xLineEdit;
|
||||
TQLineEdit *yLineEdit;
|
||||
+ TQCheckBox * themecheck;
|
||||
KBackedComboBox *compositorcombo;
|
||||
KBackedComboBox *guicombo;
|
||||
+ KBackedComboBox *themecombo;
|
||||
KBackedComboBox *colcombo;
|
||||
KBackedComboBox *echocombo;
|
||||
+ TQLabel * themeimagelabel;
|
||||
KLanguageButton *langcombo;
|
||||
TQCheckBox *sakbox;
|
||||
TQLabel *sakwarning;
|
||||
|
||||
+ //TQHBoxLayout * themehlay;
|
||||
+ TQGroupBox *themegroup;
|
||||
};
|
||||
|
||||
#endif
|
||||
--- trinity-tdebase-3.5.13.2~pre86+807a5445/kcontrol/kdm/kdm-appear.cpp.kdm_theme_selector 2013-01-09 02:12:13.000000000 +0100
|
||||
+++ trinity-tdebase-3.5.13.2~pre86+807a5445/kcontrol/kdm/kdm-appear.cpp 2013-05-09 13:00:34.428413714 +0200
|
||||
@@ -28,6 +28,7 @@
|
||||
#include <tqbuttongroup.h>
|
||||
#include <tqlabel.h>
|
||||
#include <tqlayout.h>
|
||||
+#include <tqcheckbox.h>
|
||||
#include <tqradiobutton.h>
|
||||
#include <tqwhatsthis.h>
|
||||
#include <tqvalidator.h>
|
||||
@@ -35,6 +36,7 @@
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqstyle.h>
|
||||
|
||||
+#include <kdesktopfile.h>
|
||||
#include <klocale.h>
|
||||
#include <klineedit.h>
|
||||
#include <kimageio.h>
|
||||
@@ -62,10 +64,43 @@
|
||||
|
||||
TQVBoxLayout *vbox = new TQVBoxLayout(this, KDialog::marginHint(),
|
||||
KDialog::spacingHint(), "vbox");
|
||||
- TQGroupBox *group = new TQGroupBox(i18n("Appearance"), this);
|
||||
+
|
||||
+ // ThemeBox Starts here
|
||||
+
|
||||
+ themecheck = new TQCheckBox( i18n("Use Theme"), this );
|
||||
+ vbox->addWidget(themecheck);
|
||||
+ connect(themecheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
|
||||
+ connect(themecheck, TQT_SIGNAL(toggled(bool)), TQT_SLOT(slotUsethemeChanged(bool)));
|
||||
+
|
||||
+ themegroup = new TQGroupBox(0, Vertical, i18n("Theme"), this);
|
||||
+ vbox->addWidget(themegroup);
|
||||
+
|
||||
+ TQGridLayout * grid = new TQGridLayout( themegroup->layout(), 4, 3, KDialog::spacingHint() );
|
||||
+
|
||||
+ grid->setColStretch(1, 1);
|
||||
+ grid->setColStretch(2, 1);
|
||||
+
|
||||
+ themecombo = new KBackedComboBox(themegroup);
|
||||
+ loadThemes(themecombo);
|
||||
+
|
||||
+ TQLabel * label1 = new TQLabel(themecombo, i18n("KDM Theme:"),themegroup);
|
||||
+ grid->addWidget(label1,1,0);
|
||||
+ grid->addWidget(themecombo,1,1);
|
||||
+ connect(themecombo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
|
||||
+ connect(themecombo, TQT_SIGNAL(activated(int)), TQT_SLOT(slotThemeChanged(int)));
|
||||
+
|
||||
+ themeimagelabel = new TQLabel(themecombo,"",themegroup);
|
||||
+
|
||||
+ grid->addMultiCellWidget(themeimagelabel,1,3,2,2,TQt::AlignRight);
|
||||
+
|
||||
+ vbox->addStretch(1);
|
||||
+ // ENDS HERE
|
||||
+
|
||||
+ TQGroupBox * group = new TQGroupBox(i18n("Appearance"), this);
|
||||
+
|
||||
vbox->addWidget(group);
|
||||
|
||||
- TQGridLayout *grid = new TQGridLayout( group, 5, 2, KDialog::marginHint(),
|
||||
+ grid = new TQGridLayout( group, 5, 2, KDialog::marginHint(),
|
||||
KDialog::spacingHint(), "grid");
|
||||
grid->addRowSpacing(0, group->fontMetrics().height());
|
||||
grid->setColStretch(0, 1);
|
||||
@@ -267,10 +302,25 @@
|
||||
|
||||
}
|
||||
|
||||
+
|
||||
+void KDMAppearanceWidget::slotUsethemeChanged(bool state)
|
||||
+{
|
||||
+ //themehlay->setEnabled(state);
|
||||
+ //themecombo->setEnabled(state);
|
||||
+ //themeimagelabel->setEnabled(state);
|
||||
+ themegroup->setEnabled(state);
|
||||
+}
|
||||
+
|
||||
+
|
||||
void KDMAppearanceWidget::makeReadOnly()
|
||||
{
|
||||
disconnect( logobutton, TQT_SIGNAL(clicked()),
|
||||
this, TQT_SLOT(slotLogoButtonClicked()) );
|
||||
+
|
||||
+ themecheck->setEnabled(false);
|
||||
+ //themegroup->setEnabled(false);
|
||||
+ themecombo->setEnabled(false);
|
||||
+ themeimagelabel->setEnabled(false);
|
||||
logobutton->setAcceptDrops(false);
|
||||
greetstr_lined->setReadOnly(true);
|
||||
noneRadio->setEnabled(false);
|
||||
@@ -352,6 +402,40 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void KDMAppearanceWidget::loadThemes(KBackedComboBox *combo)
|
||||
+{
|
||||
+ // Gets current Theme in kdmrc
|
||||
+ TQString current;
|
||||
+ config->setGroup("X-*-Greeter");
|
||||
+ TQFileInfo Theme = config->readEntry("Theme");
|
||||
+ if(Theme.exists()) {
|
||||
+ current = Theme.fileName();
|
||||
+ }
|
||||
+
|
||||
+ // List directories under "themes" directory
|
||||
+ TQDir d(locate("data", TQString::fromLatin1("kdm/themes/")), "", TQDir::Name, TQDir::Dirs|TQDir::NoSymLinks|TQDir::Readable|TQDir::Executable);
|
||||
+ TQStringList list = d.entryList();
|
||||
+
|
||||
+ combo->clear();
|
||||
+ for (TQStringList::ConstIterator it = list.begin(); it != list.end(); ++it) {
|
||||
+ TQString name = (*it);
|
||||
+
|
||||
+ if(name == "." || name == ".." ) {
|
||||
+ continue;
|
||||
+ }
|
||||
+
|
||||
+ if (name.isEmpty()) {
|
||||
+ name = "default";
|
||||
+ }
|
||||
+
|
||||
+ combo->insertItem( *it, name);
|
||||
+
|
||||
+ if (name == current) {
|
||||
+ combo->setCurrentItem(combo->count()-1);
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
bool KDMAppearanceWidget::setLogo(TQString logo)
|
||||
{
|
||||
TQString flogo = logo.isEmpty() ?
|
||||
@@ -468,6 +552,10 @@
|
||||
|
||||
config->writeEntry("GUIStyle", guicombo->currentId());
|
||||
|
||||
+ TQString Theme = locate("data", TQString::fromLatin1("kdm/themes/"));
|
||||
+ Theme.append(themecombo->currentId());
|
||||
+ config->writeEntry("Theme", Theme);
|
||||
+
|
||||
config->writeEntry("ColorScheme", colcombo->currentId());
|
||||
|
||||
config->writeEntry("EchoMode", echocombo->currentId());
|
||||
@@ -476,6 +564,8 @@
|
||||
|
||||
config->writeEntry("Language", langcombo->current());
|
||||
|
||||
+ config->writeEntry("UseTheme", themecheck->isChecked());
|
||||
+
|
||||
if (!sakwarning) {
|
||||
config->writeEntry("UseSAK", sakbox->isChecked());
|
||||
}
|
||||
@@ -523,6 +613,8 @@
|
||||
// Check the current compositor type
|
||||
compositorcombo->setCurrentId(config->readEntry("Compositor"));
|
||||
|
||||
+ loadThemes(themecombo);
|
||||
+
|
||||
// Check the GUI type
|
||||
guicombo->setCurrentId(config->readEntry("GUIStyle"));
|
||||
|
||||
@@ -544,6 +636,9 @@
|
||||
// get the language
|
||||
langcombo->setCurrentItem(config->readEntry("Language", "C"));
|
||||
|
||||
+ themecheck->setChecked(config->readBoolEntry("UseTheme",true));
|
||||
+ slotUsethemeChanged(config->readBoolEntry("UseTheme",true));
|
||||
+
|
||||
// See if the SAK is enabled
|
||||
if (!sakwarning) {
|
||||
sakbox->setChecked(config->readBoolEntry("UseSAK", true));
|
||||
@@ -556,10 +651,12 @@
|
||||
|
||||
void KDMAppearanceWidget::defaults()
|
||||
{
|
||||
+ themecheck->setChecked(true);
|
||||
greetstr_lined->setText( i18n("Welcome to %n") );
|
||||
logoRadio->setChecked( true );
|
||||
slotAreaRadioClicked( KdmLogo );
|
||||
setLogo( "" );
|
||||
+ themecombo->setCurrentId("");
|
||||
compositorcombo->setCurrentId( "" );
|
||||
guicombo->setCurrentId( "" );
|
||||
colcombo->setCurrentId( "" );
|
@ -1,297 +0,0 @@
|
||||
--- ./kdmlib/kgreet_classic.cpp.ORI 2013-05-09 17:43:03.148552793 +0200
|
||||
+++ ./kdmlib/kgreet_classic.cpp 2013-05-09 17:51:09.129324589 +0200
|
||||
@@ -26,21 +26,30 @@
|
||||
#include "themer/kdmthemer.h"
|
||||
#include "themer/kdmitem.h"
|
||||
|
||||
+#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
#include <klineedit.h>
|
||||
-#include <kpassdlg.h>
|
||||
#include <kuser.h>
|
||||
|
||||
#include <tqregexp.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqlabel.h>
|
||||
|
||||
-class KDMPasswordEdit : public KPasswordEdit {
|
||||
+class KDMPasswordEdit : public KLineEdit {
|
||||
public:
|
||||
- KDMPasswordEdit( TQWidget *parent ) : KPasswordEdit( parent, 0 ) {}
|
||||
- KDMPasswordEdit( KPasswordEdit::EchoModes echoMode, TQWidget *parent ) : KPasswordEdit( echoMode, parent, 0 ) {}
|
||||
+ KDMPasswordEdit( TQWidget *parent ) : KLineEdit( parent )
|
||||
+ {
|
||||
+ setEchoMode(TQLineEdit::Password);
|
||||
+ }
|
||||
+
|
||||
+ KDMPasswordEdit( TQLineEdit::EchoMode echoMode, TQWidget *parent ) : KLineEdit( parent )
|
||||
+ {
|
||||
+ setEchoMode(echoMode);
|
||||
+ }
|
||||
+
|
||||
+
|
||||
protected:
|
||||
- virtual void contextMenuEvent( TQContextMenuEvent * ) {}
|
||||
+ virtual void contextMenuEvent( TQContextMenuEvent * ) {}
|
||||
};
|
||||
|
||||
static int echoMode;
|
||||
@@ -104,11 +113,11 @@
|
||||
grid->addWidget( loginLabel, line, 0 );
|
||||
grid->addWidget( new TQLabel( fixedUser, parent ), line++, 1 );
|
||||
}
|
||||
- if (echoMode == -1)
|
||||
+ if (echoMode == -1) {
|
||||
passwdEdit = new KDMPasswordEdit( parent );
|
||||
- else
|
||||
- passwdEdit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode,
|
||||
- parent );
|
||||
+ } else {
|
||||
+ passwdEdit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode, parent );
|
||||
+ }
|
||||
connect( passwdEdit, TQT_SIGNAL(textChanged( const TQString & )),
|
||||
TQT_SLOT(slotActivity()) );
|
||||
connect( passwdEdit, TQT_SIGNAL(lostFocus()), TQT_SLOT(slotActivity()) );
|
||||
@@ -135,8 +144,8 @@
|
||||
}
|
||||
if (func != Authenticate) {
|
||||
if (echoMode == -1) {
|
||||
- passwd1Edit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode, parent );
|
||||
- passwd2Edit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode, parent );
|
||||
+ passwd1Edit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode, parent );
|
||||
+ passwd2Edit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode, parent );
|
||||
} else {
|
||||
passwd1Edit = new KDMPasswordEdit( parent );
|
||||
passwd2Edit = new KDMPasswordEdit( parent );
|
||||
@@ -247,16 +256,16 @@
|
||||
KGreeterPluginHandler::IsUser );
|
||||
break;
|
||||
case 1:
|
||||
- handler->gplugReturnText( passwdEdit->password(),
|
||||
+ handler->gplugReturnText( passwdEdit->text().utf8(),
|
||||
KGreeterPluginHandler::IsPassword |
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
case 2:
|
||||
- handler->gplugReturnText( passwd1Edit->password(),
|
||||
+ handler->gplugReturnText( passwd1Edit->text().utf8(),
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
default: // case 3:
|
||||
- handler->gplugReturnText( passwd2Edit->password(),
|
||||
+ handler->gplugReturnText( passwd2Edit->text().utf8(),
|
||||
KGreeterPluginHandler::IsNewPassword |
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
@@ -405,11 +414,11 @@
|
||||
// assert( !running );
|
||||
setActive2( true );
|
||||
if (authTok) {
|
||||
- passwd1Edit->erase();
|
||||
- passwd2Edit->erase();
|
||||
+ passwd1Edit->clear();
|
||||
+ passwd2Edit->clear();
|
||||
passwd1Edit->setFocus();
|
||||
} else {
|
||||
- passwdEdit->erase();
|
||||
+ passwdEdit->clear();
|
||||
if (loginEdit && loginEdit->isEnabled())
|
||||
passwdEdit->setEnabled( true );
|
||||
else {
|
||||
@@ -426,7 +435,7 @@
|
||||
KClassicGreeter::clear()
|
||||
{
|
||||
// assert( !running && !passwd1Edit );
|
||||
- passwdEdit->erase();
|
||||
+ passwdEdit->clear();
|
||||
if (loginEdit) {
|
||||
loginEdit->clear();
|
||||
loginEdit->setFocus();
|
||||
@@ -484,9 +493,24 @@
|
||||
TQVariant (*getConf)( void *, const char *, const TQVariant & ),
|
||||
void *ctx )
|
||||
{
|
||||
- echoMode = getConf( ctx, "EchoMode", TQVariant( -1 ) ).toInt();
|
||||
- KGlobal::locale()->insertCatalogue( "kgreet_classic" );
|
||||
- return true;
|
||||
+ echoMode = getConf( ctx, "EchoMode", TQVariant( -1 ) ).toInt();
|
||||
+ switch (echoMode)
|
||||
+ {
|
||||
+ case (0):
|
||||
+ case (1):
|
||||
+ echoMode = TQLineEdit::Password;
|
||||
+ break;
|
||||
+
|
||||
+ case (2):
|
||||
+ echoMode = TQLineEdit::NoEcho;
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ echoMode = TQLineEdit::Password;
|
||||
+ }
|
||||
+
|
||||
+ KGlobal::locale()->insertCatalogue( "kgreet_classic" );
|
||||
+ return true;
|
||||
}
|
||||
|
||||
static void done( void )
|
||||
--- ./kdmlib/kgreet_classic.h.ORI 2013-05-09 17:53:03.266961035 +0200
|
||||
+++ ./kdmlib/kgreet_classic.h 2013-05-09 17:53:49.235008948 +0200
|
||||
@@ -31,7 +31,6 @@
|
||||
#include <tqobject.h>
|
||||
|
||||
class KLineEdit;
|
||||
-class KPasswordEdit;
|
||||
class KSimpleConfig;
|
||||
class TQGridLayout;
|
||||
class TQLabel;
|
||||
@@ -76,7 +75,7 @@
|
||||
|
||||
TQLabel *loginLabel, *passwdLabel, *passwd1Label, *passwd2Label;
|
||||
KLineEdit *loginEdit;
|
||||
- KPasswordEdit *passwdEdit, *passwd1Edit, *passwd2Edit;
|
||||
+ KLineEdit *passwdEdit, *passwd1Edit, *passwd2Edit;
|
||||
KSimpleConfig *stsFile;
|
||||
TQString fixedUser, curUser;
|
||||
Function func;
|
||||
--- ./kdmlib/kgreet_winbind.cpp.ORI 2013-05-09 17:54:36.906021481 +0200
|
||||
+++ ./kdmlib/kgreet_winbind.cpp 2013-05-09 18:00:23.089847329 +0200
|
||||
@@ -26,11 +26,11 @@
|
||||
#include "themer/kdmthemer.h"
|
||||
#include "themer/kdmitem.h"
|
||||
|
||||
+#include <kglobal.h>
|
||||
#include <klocale.h>
|
||||
#include <kdebug.h>
|
||||
#include <kcombobox.h>
|
||||
#include <klineedit.h>
|
||||
-#include <kpassdlg.h>
|
||||
#include <kuser.h>
|
||||
#include <kprocio.h>
|
||||
|
||||
@@ -40,10 +40,17 @@
|
||||
|
||||
#include <stdlib.h>
|
||||
|
||||
-class KDMPasswordEdit : public KPasswordEdit {
|
||||
+class KDMPasswordEdit : public KLineEdit {
|
||||
public:
|
||||
- KDMPasswordEdit( TQWidget *parent ) : KPasswordEdit( parent, 0 ) {}
|
||||
- KDMPasswordEdit( KPasswordEdit::EchoModes echoMode, TQWidget *parent ) : KPasswordEdit( echoMode, parent, 0 ) {}
|
||||
+ KDMPasswordEdit( TQWidget *parent ) : KLineEdit( parent )
|
||||
+ {
|
||||
+ setEchoMode(TQLineEdit::Password);
|
||||
+ }
|
||||
+ KDMPasswordEdit( TQLineEdit::EchoMode echoMode, TQWidget *parent ) : KLineEdit( parent )
|
||||
+ {
|
||||
+ setEchoMode(echoMode);
|
||||
+ }
|
||||
+
|
||||
protected:
|
||||
virtual void contextMenuEvent( TQContextMenuEvent * ) {}
|
||||
};
|
||||
@@ -150,7 +157,7 @@
|
||||
if (echoMode == -1)
|
||||
passwdEdit = new KDMPasswordEdit( parent );
|
||||
else
|
||||
- passwdEdit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode,
|
||||
+ passwdEdit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode,
|
||||
parent );
|
||||
connect( passwdEdit, TQT_SIGNAL(textChanged( const TQString & )),
|
||||
TQT_SLOT(slotActivity()) );
|
||||
@@ -180,8 +187,8 @@
|
||||
}
|
||||
if (func != Authenticate) {
|
||||
if (echoMode == -1) {
|
||||
- passwd1Edit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode, parent );
|
||||
- passwd2Edit = new KDMPasswordEdit( (KPasswordEdit::EchoModes)echoMode, parent );
|
||||
+ passwd1Edit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode, parent );
|
||||
+ passwd2Edit = new KDMPasswordEdit( (TQLineEdit::EchoMode)echoMode, parent );
|
||||
} else {
|
||||
passwd1Edit = new KDMPasswordEdit( parent );
|
||||
passwd2Edit = new KDMPasswordEdit( parent );
|
||||
@@ -328,16 +335,16 @@
|
||||
KGreeterPluginHandler::IsUser );
|
||||
break;
|
||||
case 1:
|
||||
- handler->gplugReturnText( passwdEdit->password(),
|
||||
+ handler->gplugReturnText( passwdEdit->text().utf8(),
|
||||
KGreeterPluginHandler::IsPassword |
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
case 2:
|
||||
- handler->gplugReturnText( passwd1Edit->password(),
|
||||
+ handler->gplugReturnText( passwd1Edit->text().utf8(),
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
default: // case 3:
|
||||
- handler->gplugReturnText( passwd2Edit->password(),
|
||||
+ handler->gplugReturnText( passwd2Edit->text().utf8(),
|
||||
KGreeterPluginHandler::IsNewPassword |
|
||||
KGreeterPluginHandler::IsSecret );
|
||||
break;
|
||||
@@ -486,11 +493,11 @@
|
||||
// assert( !running );
|
||||
setActive2( true );
|
||||
if (authTok) {
|
||||
- passwd1Edit->erase();
|
||||
- passwd2Edit->erase();
|
||||
+ passwd1Edit->clear();
|
||||
+ passwd2Edit->clear();
|
||||
passwd1Edit->setFocus();
|
||||
} else {
|
||||
- passwdEdit->erase();
|
||||
+ passwdEdit->clear();
|
||||
if (loginEdit && loginEdit->isEnabled())
|
||||
passwdEdit->setEnabled( true );
|
||||
else {
|
||||
@@ -507,7 +514,7 @@
|
||||
KWinbindGreeter::clear()
|
||||
{
|
||||
// assert( !running && !passwd1Edit );
|
||||
- passwdEdit->erase();
|
||||
+ passwdEdit->clear();
|
||||
if (loginEdit) {
|
||||
domainCombo->setCurrentItem( defaultDomain );
|
||||
slotChangedDomain( defaultDomain );
|
||||
@@ -632,6 +639,21 @@
|
||||
void *ctx )
|
||||
{
|
||||
echoMode = getConf( ctx, "EchoMode", TQVariant( -1 ) ).toInt();
|
||||
+ switch (echoMode)
|
||||
+ {
|
||||
+ case (0):
|
||||
+ case (1):
|
||||
+ echoMode = TQLineEdit::Password;
|
||||
+ break;
|
||||
+
|
||||
+ case (2):
|
||||
+ echoMode = TQLineEdit::NoEcho;
|
||||
+ break;
|
||||
+
|
||||
+ default:
|
||||
+ echoMode = TQLineEdit::Password;
|
||||
+ }
|
||||
+
|
||||
staticDomains = TQStringList::split( ':', getConf( ctx, "winbind.Domains", TQVariant( "" ) ).toString() );
|
||||
if (!staticDomains.contains("<local>"))
|
||||
staticDomains << "<local>";
|
||||
--- ./kdmlib/kgreet_winbind.h.ORI 2013-05-09 18:00:46.495362083 +0200
|
||||
+++ ./kdmlib/kgreet_winbind.h 2013-05-09 18:01:22.960606033 +0200
|
||||
@@ -33,7 +33,6 @@
|
||||
|
||||
class KComboBox;
|
||||
class KLineEdit;
|
||||
-class KPasswordEdit;
|
||||
class KSimpleConfig;
|
||||
class TQGridLayout;
|
||||
class TQLabel;
|
||||
@@ -85,7 +84,7 @@
|
||||
TQLabel *domainLabel, *loginLabel, *passwdLabel, *passwd1Label, *passwd2Label;
|
||||
KComboBox *domainCombo;
|
||||
KLineEdit *loginEdit;
|
||||
- KPasswordEdit *passwdEdit, *passwd1Edit, *passwd2Edit;
|
||||
+ KLineEdit *passwdEdit, *passwd1Edit, *passwd2Edit;
|
||||
KSimpleConfig *stsFile;
|
||||
TQString fixedDomain, fixedUser, curUser;
|
||||
TQStringList allUsers, mDomainListing;
|
@ -1,12 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre100+073a32f9/CMakeLists.txt.ORI 2013-05-10 19:40:45.930287816 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre100+073a32f9/CMakeLists.txt 2013-05-10 19:40:57.593049243 +0200
|
||||
@@ -244,6 +244,9 @@
|
||||
endif()
|
||||
|
||||
##### Checks for a distribution-specific 2nd menu item, generally a shortcut to graphical package manager
|
||||
+if(EXISTS "/usr/share/applications/gpk-application.desktop")
|
||||
+ set( KICKOFF_DIST_CONFIG_SHORTCUT2 "/usr/share/applications/gpk-application.desktop" )
|
||||
+endif()
|
||||
if(EXISTS "/usr/share/applications/package-manager.desktop")
|
||||
set( KICKOFF_DIST_CONFIG_SHORTCUT2 "/usr/share/applications/package-manager.desktop" )
|
||||
endif()
|
@ -1,16 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre86+807a5445/kicker/kicker/ui/default-favs.ORI 2013-05-09 22:50:36.607264087 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre86+807a5445/kicker/kicker/ui/default-favs 2013-05-09 22:50:46.935039753 +0200
|
||||
@@ -1,9 +1,7 @@
|
||||
-MozillaFirefox.desktop
|
||||
-kde-Kontact.desktop
|
||||
-writer.desktop
|
||||
-kde-amarok.desktop
|
||||
-kde-digikam.desktop
|
||||
kde-Home.desktop
|
||||
+kde-konqbrowser.desktop
|
||||
+kde-Kfind.desktop
|
||||
+kde-kate.desktop
|
||||
+kde-konsole.desktop
|
||||
kde-KControl.desktop
|
||||
kde-Help.desktop
|
||||
-kde-konsole.desktop
|
@ -1,45 +0,0 @@
|
||||
--- ./kicker/kicker/ui/k_new_mnu.cpp.ori 2013-05-08 21:56:01.084691260 +0200
|
||||
+++ ./kicker/kicker/ui/k_new_mnu.cpp 2013-05-08 21:58:02.086130445 +0200
|
||||
@@ -1428,6 +1428,42 @@
|
||||
m_systemView->insertItem( "folder_man", i18n( "My Documents" ), documentPath, documentPath, nId++, index++ );
|
||||
}
|
||||
|
||||
+ if ( KStandardDirs::exists( KGlobalSettings::picturesPath() + "/" ) )
|
||||
+ {
|
||||
+ TQString picturesPath = KGlobalSettings::picturesPath();
|
||||
+ if ( picturesPath.endsWith( "/" ) )
|
||||
+ picturesPath = picturesPath.left( picturesPath.length() - 1 );
|
||||
+ if (picturesPath!=TQDir::homeDirPath())
|
||||
+ m_systemView->insertItem( "folder_image", i18n( "My Images" ), picturesPath, picturesPath, nId++, index++ );
|
||||
+ }
|
||||
+
|
||||
+ if ( KStandardDirs::exists( KGlobalSettings::musicPath() + "/" ) )
|
||||
+ {
|
||||
+ TQString musicPath = KGlobalSettings::musicPath();
|
||||
+ if ( musicPath.endsWith( "/" ) )
|
||||
+ musicPath = musicPath.left( musicPath.length() - 1 );
|
||||
+ if (musicPath!=TQDir::homeDirPath())
|
||||
+ m_systemView->insertItem( "folder_sound", i18n( "My Music" ), musicPath, musicPath, nId++, index++ );
|
||||
+ }
|
||||
+
|
||||
+ if ( KStandardDirs::exists( KGlobalSettings::videosPath() + "/" ) )
|
||||
+ {
|
||||
+ TQString videosPath = KGlobalSettings::videosPath();
|
||||
+ if ( videosPath.endsWith( "/" ) )
|
||||
+ videosPath = videosPath.left( videosPath.length() - 1 );
|
||||
+ if (videosPath!=TQDir::homeDirPath())
|
||||
+ m_systemView->insertItem( "folder_video", i18n( "My Videos" ), videosPath, videosPath, nId++, index++ );
|
||||
+ }
|
||||
+
|
||||
+ if ( KStandardDirs::exists( KGlobalSettings::downloadPath() + "/" ) )
|
||||
+ {
|
||||
+ TQString downloadPath = KGlobalSettings::downloadPath();
|
||||
+ if ( downloadPath.endsWith( "/" ) )
|
||||
+ downloadPath = downloadPath.left( downloadPath.length() - 1 );
|
||||
+ if (downloadPath!=TQDir::homeDirPath())
|
||||
+ m_systemView->insertItem( "folder_inbox", i18n( "My Downloads" ), downloadPath, downloadPath, nId++, index++ );
|
||||
+ }
|
||||
+
|
||||
m_systemView->insertItem( "network", i18n( "Network Folders" ),
|
||||
"remote:/", "remote:/", nId++, index++ );
|
||||
|
@ -1,639 +0,0 @@
|
||||
--- ./ksmserver/startup.cpp.ori 2013-05-08 20:04:32.138717187 +0200
|
||||
+++ ./ksmserver/startup.cpp 2013-05-08 20:14:12.550305958 +0200
|
||||
@@ -115,43 +115,40 @@
|
||||
int count = config->readNumEntry( "count" );
|
||||
appsToStart = count;
|
||||
|
||||
- TQValueList<TQStringList> wmCommands;
|
||||
- if ( !wm.isEmpty() ) {
|
||||
- for ( int i = 1; i <= count; i++ ) {
|
||||
- TQString n = TQString::number(i);
|
||||
- if ( wm == config->readEntry( TQString("program")+n ) ) {
|
||||
- wmCommands << config->readListEntry( TQString("restartCommand")+n );
|
||||
- }
|
||||
- }
|
||||
- }
|
||||
- if ( wmCommands.isEmpty() )
|
||||
- wmCommands << ( TQStringList() << wm );
|
||||
-
|
||||
publishProgress( appsToStart, true );
|
||||
connectDCOPSignal( launcher, launcher, "autoStart0Done()",
|
||||
"autoStart0Done()", true);
|
||||
connectDCOPSignal( launcher, launcher, "autoStart1Done()",
|
||||
"autoStart1Done()", true);
|
||||
connectDCOPSignal( launcher, launcher, "autoStart2Done()",
|
||||
"autoStart2Done()", true);
|
||||
upAndRunning( "ksmserver" );
|
||||
|
||||
- if ( !wmCommands.isEmpty() ) {
|
||||
- // when we have a window manager, we start it first and give
|
||||
- // it some time before launching other processes. Results in a
|
||||
- // visually more appealing startup.
|
||||
- for (uint i = 0; i < wmCommands.count(); i++)
|
||||
- startApplication( wmCommands[i] );
|
||||
- if ((showFancyLogin) && (!startupNotifierIPDlg)) {
|
||||
- startupNotifierIPDlg = KSMStartupIPDlg::showStartupIP();
|
||||
- }
|
||||
- TQTimer::singleShot( 4000, this, TQT_SLOT( autoStart0() ) );
|
||||
- } else {
|
||||
- if ((showFancyLogin) && (!startupNotifierIPDlg)) {
|
||||
- startupNotifierIPDlg = KSMStartupIPDlg::showStartupIP();
|
||||
+ // find all commands to launch the wm in the session
|
||||
+ TQValueList<QStringList> wmStartCommands;
|
||||
+ if ( !wm.isEmpty() ) {
|
||||
+ for ( int i = 1; i <= count; i++ ) {
|
||||
+ TQString n = TQString::number(i);
|
||||
+ // special hack for it, both kde3(=native) and kde4 kwin have the same program,
|
||||
+ // but the command for kde4 kwin starts with the kde4 wrapper
|
||||
+ if( config->readEntry( TQString("program")+n ) == "kwin" ) {
|
||||
+ TQStringList command = config->readListEntry( TQString("restartCommand")+n );
|
||||
+ if( wmCommands.count() > 1 && wmCommands[ 0 ].endsWith( "kde4" )
|
||||
+ && command.count() > 1 && command[ 0 ].endsWith( "kde4" )) {
|
||||
+ wmStartCommands << command; // kde4 wanted, kde4 found
|
||||
+ } else if(!( wmCommands.count() > 1 && wmCommands[ 0 ].endsWith( "kde4" ))
|
||||
+ && !( command.count() > 1 && command[ 0 ].endsWith( "kde4" ))) {
|
||||
+ wmStartCommands << command; // native wanted, native found
|
||||
+ }
|
||||
+ } else if ( wm == config->readEntry( TQString("program")+n ) ) {
|
||||
+ wmStartCommands << config->readListEntry( TQString("restartCommand")+n );
|
||||
+ }
|
||||
}
|
||||
- autoStart0();
|
||||
+ }
|
||||
+ if( wmStartCommands.isEmpty()) { // otherwise use the configured default
|
||||
+ wmStartCommands << wmCommands;
|
||||
}
|
||||
+ launchWM( wmStartCommands );
|
||||
}
|
||||
|
||||
/*!
|
||||
@@ -180,18 +177,57 @@
|
||||
"autoStart1Done()", true);
|
||||
connectDCOPSignal( launcher, launcher, "autoStart2Done()",
|
||||
"autoStart2Done()", true);
|
||||
- startApplication( wm );
|
||||
+ launchWM( TQValueList< TQStringList >() << wmCommands );
|
||||
if ((showFancyLogin) && (!startupNotifierIPDlg)) {
|
||||
startupNotifierIPDlg = KSMStartupIPDlg::showStartupIP();
|
||||
}
|
||||
+}
|
||||
+
|
||||
+void KSMServer::launchWM( const QValueList< QStringList >& wmStartCommands )
|
||||
+{
|
||||
+ assert( state == LaunchingWM );
|
||||
+
|
||||
+ // when we have a window manager, we start it first and give
|
||||
+ // it some time before launching other processes. Results in a
|
||||
+ // visually more appealing startup.
|
||||
+ wmProcess = startApplication( wmStartCommands[ 0 ] );
|
||||
+ connect( wmProcess, TQT_SIGNAL( processExited( KProcess* )), TQT_SLOT( wmProcessChange()));
|
||||
+ // there can be possibly more wm's (because of forking for multihead),
|
||||
+ // but in such case care only about the process of the first one
|
||||
+ for (unsigned int i = 1; i < wmStartCommands.count(); i++) {
|
||||
+ startApplication( wmStartCommands[i] );
|
||||
+ }
|
||||
TQTimer::singleShot( 4000, this, TQT_SLOT( autoStart0() ) );
|
||||
}
|
||||
|
||||
|
||||
void KSMServer::clientSetProgram( KSMClient* client )
|
||||
{
|
||||
- if ( !wm.isEmpty() && client->program() == wm )
|
||||
+ if ( client->program() == wm ) {
|
||||
autoStart0();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void KSMServer::wmProcessChange()
|
||||
+{
|
||||
+ if( state != LaunchingWM )
|
||||
+ { // don't care about the process when not in the wm-launching state anymore
|
||||
+ wmProcess = NULL;
|
||||
+ return;
|
||||
+ }
|
||||
+ if( !wmProcess->isRunning())
|
||||
+ { // wm failed to launch for some reason, go with kwin instead
|
||||
+ kdWarning( 1218 ) << "Window manager '" << wm << "' failed to launch" << endl;
|
||||
+ if( wm == "kwin" ) {
|
||||
+ return; // uhoh, kwin itself failed
|
||||
+ }
|
||||
+ kdDebug( 1218 ) << "Launching KWin" << endl;
|
||||
+ wm = "kwin";
|
||||
+ wmCommands = ( TQStringList() << "kwin" );
|
||||
+ // launch it
|
||||
+ launchWM( TQValueList< TQStringList >() << wmCommands );
|
||||
+ return;
|
||||
+ }
|
||||
}
|
||||
|
||||
void KSMServer::autoStart0()
|
||||
--- ./ksmserver/server.h.ORI 2013-05-08 20:16:35.950487652 +0200
|
||||
+++ ./ksmserver/server.h 2013-05-08 20:19:49.069692796 +0200
|
||||
@@ -30,6 +30,8 @@
|
||||
#define SESSION_PREVIOUS_LOGOUT "saved at previous logout"
|
||||
#define SESSION_BY_USER "saved by user"
|
||||
|
||||
+class KProcess;
|
||||
+
|
||||
typedef TQValueList<TQCString> QCStringList;
|
||||
class KSMListener;
|
||||
class KSMConnection;
|
||||
@@ -98,6 +100,8 @@
|
||||
KApplication::ShutdownType sdtype,
|
||||
KApplication::ShutdownMode sdmode );
|
||||
|
||||
+ void launchWM( const TQValueList< TQStringList >& wmStartCommands );
|
||||
+
|
||||
public slots:
|
||||
void cleanUp();
|
||||
|
||||
@@ -120,6 +124,7 @@
|
||||
void autoStart2();
|
||||
void tryRestoreNext();
|
||||
void startupSuspendTimeout();
|
||||
+ void wmProcessChange();
|
||||
|
||||
private:
|
||||
void handlePendingInteractions();
|
||||
@@ -138,7 +143,7 @@
|
||||
void startProtection();
|
||||
void endProtection();
|
||||
|
||||
- void startApplication( TQStringList command,
|
||||
+ KProcess* startApplication( TQStringList command,
|
||||
const TQString& clientMachine = TQString::null,
|
||||
const TQString& userId = TQString::null );
|
||||
void executeCommand( const TQStringList& command );
|
||||
@@ -149,6 +154,7 @@
|
||||
bool isCM( const TQString& program ) const;
|
||||
bool isNotifier( const KSMClient* client ) const;
|
||||
bool isNotifier( const TQString& program ) const;
|
||||
+ void selectWm( const TQString& kdewm );
|
||||
bool defaultSession() const; // empty session
|
||||
void setupXIOErrorHandler();
|
||||
|
||||
@@ -231,6 +237,8 @@
|
||||
TQString lastIdStarted;
|
||||
|
||||
TQStringList excludeApps;
|
||||
+ TQStringList wmCommands;
|
||||
+ KProcess* wmProcess;
|
||||
|
||||
WindowMap legacyWindows;
|
||||
int initialClientCount;
|
||||
--- ./ksmserver/CMakeLists.txt.ORI 2013-05-08 20:21:11.420074784 +0200
|
||||
+++ ./ksmserver/CMakeLists.txt 2013-05-08 20:22:16.602794164 +0200
|
||||
@@ -28,6 +28,8 @@
|
||||
${DBUS_TQT_LIBRARY_DIRS}
|
||||
)
|
||||
|
||||
+add_subdirectory( windowmanagers )
|
||||
+
|
||||
|
||||
##### other data ################################
|
||||
|
||||
--- ./ksmserver/main.cpp.ori 2013-05-08 20:22:52.841082235 +0200
|
||||
+++ ./ksmserver/main.cpp 2013-05-08 20:23:11.717711399 +0200
|
||||
@@ -203,8 +203,6 @@
|
||||
}
|
||||
|
||||
TQCString wm = args->getOption("windowmanager");
|
||||
- if ( wm.isEmpty() )
|
||||
- wm = "kwin";
|
||||
|
||||
bool only_local = args->isSet("local");
|
||||
#ifndef HAVE__ICETRANSNOLISTEN
|
||||
--- ./ksmserver/server.cpp.ori 2013-05-08 20:24:02.870706512 +0200
|
||||
+++ ./ksmserver/server.cpp 2013-05-08 20:35:02.808745909 +0200
|
||||
@@ -77,6 +77,8 @@
|
||||
#include <kprocess.h>
|
||||
#include <dcopclient.h>
|
||||
#include <dcopref.h>
|
||||
+#include <kdesktopfile.h>
|
||||
+#include <kshell.h>
|
||||
|
||||
#include "server.h"
|
||||
#include "global.h"
|
||||
@@ -98,11 +100,11 @@
|
||||
/*! Utility function to execute a command on the local machine. Used
|
||||
* to restart applications.
|
||||
*/
|
||||
-void KSMServer::startApplication( TQStringList command, const TQString& clientMachine,
|
||||
+KProcess* KSMServer::startApplication( TQStringList command, const TQString& clientMachine,
|
||||
const TQString& userId )
|
||||
{
|
||||
if ( command.isEmpty() )
|
||||
- return;
|
||||
+ return NULL;
|
||||
if ( !userId.isEmpty()) {
|
||||
struct passwd* pw = getpwuid( getuid());
|
||||
if( pw != NULL && userId != TQString::fromLocal8Bit( pw->pw_name )) {
|
||||
@@ -116,12 +118,13 @@
|
||||
command.prepend( clientMachine );
|
||||
command.prepend( xonCommand ); // "xon" by default
|
||||
}
|
||||
- int n = command.count();
|
||||
- TQCString app = command[0].latin1();
|
||||
- TQValueList<TQCString> argList;
|
||||
- for ( int i=1; i < n; i++)
|
||||
- argList.append( TQCString(command[i].latin1()));
|
||||
- DCOPRef( launcher ).send( "exec_blind", app, DCOPArg( argList, "TQValueList<TQCString>" ) );
|
||||
+ KProcess* process = new KProcess( this );
|
||||
+ *process << command;
|
||||
+ // make it auto-delete
|
||||
+ connect( process, TQT_SIGNAL( processExited( KProcess* )), process, TQT_SLOT( deleteLater()));
|
||||
+ process->start();
|
||||
+ return process;
|
||||
+
|
||||
}
|
||||
|
||||
/*! Utility function to execute a command on the local machine. Used
|
||||
@@ -579,7 +582,7 @@
|
||||
#endif
|
||||
|
||||
KSMServer::KSMServer( const TQString& windowManager, bool _only_local )
|
||||
- : DCOPObject("ksmserver"), sessionGroup( "" ), startupNotifierIPDlg(0), shutdownNotifierIPDlg(0)
|
||||
+ : DCOPObject("ksmserver"), sessionGroup( "" ), startupNotifierIPDlg(0), shutdownNotifierIPDlg(0), wmProcess( NULL )
|
||||
{
|
||||
the_server = this;
|
||||
clean = false;
|
||||
@@ -595,7 +598,10 @@
|
||||
config->setGroup("General" );
|
||||
clientInteracting = 0;
|
||||
xonCommand = config->readEntry( "xonCommand", "xon" );
|
||||
-
|
||||
+
|
||||
+ KGlobal::dirs()->addResourceType( "windowmanagers", "share/apps/ksmserver/windowmanagers" );
|
||||
+ selectWm( windowManager );
|
||||
+
|
||||
connect( &knotifyTimeoutTimer, TQT_SIGNAL( timeout()), TQT_SLOT( knotifyTimeout()));
|
||||
connect( &startupSuspendTimeoutTimer, TQT_SIGNAL( timeout()), TQT_SLOT( startupSuspendTimeout()));
|
||||
connect( &pendingShutdown, TQT_SIGNAL( timeout()), TQT_SLOT( pendingShutdownTimeout()));
|
||||
@@ -851,15 +857,15 @@
|
||||
config->setGroup( sessionGroup );
|
||||
count = 0;
|
||||
|
||||
- if ( !wm.isEmpty() ) {
|
||||
- // put the wm first
|
||||
- for ( KSMClient* c = clients.first(); c; c = clients.next() )
|
||||
- if ( c->program() == wm ) {
|
||||
- clients.prepend( clients.take() );
|
||||
- break;
|
||||
- }
|
||||
+ // put the wm first
|
||||
+ for ( KSMClient* c = clients.first(); c; c = clients.next() ) {
|
||||
+ if ( c->program() == wm ) {
|
||||
+ clients.prepend( clients.take() );
|
||||
+ break;
|
||||
+ }
|
||||
}
|
||||
|
||||
+
|
||||
for ( KSMClient* c = clients.first(); c; c = clients.next() ) {
|
||||
int restartHint = c->restartStyleHint();
|
||||
if (restartHint == SmRestartNever)
|
||||
@@ -909,11 +915,7 @@
|
||||
|
||||
bool KSMServer::isWM( const TQString& program ) const
|
||||
{
|
||||
- // KWin relies on ksmserver's special treatment in phase1,
|
||||
- // therefore make sure it's recognized even if ksmserver
|
||||
- // was initially started with different WM, and kwin replaced
|
||||
- // it later
|
||||
- return ((program == wm) || (program == "kwin"));
|
||||
+ return program == wm;
|
||||
}
|
||||
|
||||
bool KSMServer::isCM( const KSMClient* client ) const
|
||||
@@ -941,3 +943,62 @@
|
||||
{
|
||||
return sessionGroup.isEmpty();
|
||||
}
|
||||
+
|
||||
+static bool noDisplay( KDesktopFile& f )
|
||||
+{
|
||||
+ KConfigGroup gr( &f, "Desktop Entry" );
|
||||
+ if (gr.readBoolEntry("NoDisplay", false)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (gr.hasKey("OnlyShowIn")) {
|
||||
+ if (!gr.readListEntry("OnlyShowIn", ';').contains("KDE"))
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (gr.hasKey("NotShowIn")) {
|
||||
+ if (gr.readListEntry("NotShowIn", ';').contains("KDE"))
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+// selection logic:
|
||||
+// - $KDEWM is set - use that
|
||||
+// - a wm is selected using the kcm - use that
|
||||
+// - if that fails, just use KWin
|
||||
+void KSMServer::selectWm( const TQString& kdewm )
|
||||
+{
|
||||
+ wm = "kwin"; // defaults
|
||||
+ wmCommands = ( TQStringList() << "kwin" );
|
||||
+ if( !kdewm.isEmpty())
|
||||
+ {
|
||||
+ wmCommands = ( TQStringList() << kdewm );
|
||||
+ wm = kdewm;
|
||||
+ return;
|
||||
+ }
|
||||
+ KConfigGroup config(KGlobal::config(), "General");
|
||||
+ TQString cfgwm = config.readEntry( "windowManager", "kwin" );
|
||||
+ KDesktopFile file( cfgwm + ".desktop", true, "windowmanagers" );
|
||||
+ if( noDisplay( file )) {
|
||||
+ return;
|
||||
+ }
|
||||
+ if( !file.tryExec()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ file.setDesktopGroup();
|
||||
+ TQString testexec = file.readEntry( "X-KDE-WindowManagerTestExec" );
|
||||
+ if( !testexec.isEmpty())
|
||||
+ {
|
||||
+ int ret = system( TQFile::encodeName( testexec ));
|
||||
+ if( !WIFEXITED( ret ) || WEXITSTATUS( ret ) != 0 ) {
|
||||
+ return;
|
||||
+ }
|
||||
+ }
|
||||
+ TQStringList cfgWmCommands = KShell::splitArgs( file.readEntry( "Exec" ));
|
||||
+ if( cfgWmCommands.isEmpty()) {
|
||||
+ return;
|
||||
+ }
|
||||
+ TQString smname = file.readEntry( "X-KDE-WindowManagerId" );
|
||||
+ // ok
|
||||
+ wm = smname.isEmpty() ? cfgwm : smname;
|
||||
+ wmCommands = cfgWmCommands;
|
||||
+}
|
||||
Index: ksmserver/windowmanagers/CMakeLists.txt
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/CMakeLists.txt
|
||||
@@ -0,0 +1,4 @@
|
||||
+install(
|
||||
+ FILES compiz-custom.desktop compiz.desktop kwin4.desktop metacity.desktop openbox.desktop
|
||||
+ DESTINATION ${DATA_INSTALL_DIR}/ksmserver/windowmanagers
|
||||
+)
|
||||
Index: ksmserver/windowmanagers/openbox.desktop
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/openbox.desktop
|
||||
@@ -0,0 +1,5 @@
|
||||
+[Desktop Entry]
|
||||
+Name=Openbox
|
||||
+Exec=openbox
|
||||
+TryExec=openbox
|
||||
+
|
||||
Index: ksmserver/windowmanagers/compiz.desktop
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/compiz.desktop
|
||||
@@ -0,0 +1,4 @@
|
||||
+[Desktop Entry]
|
||||
+Name=Compiz
|
||||
+Exec=compiz ccp
|
||||
+TryExec=compiz
|
||||
Index: ksmserver/windowmanagers/compiz-custom.desktop
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/compiz-custom.desktop
|
||||
@@ -0,0 +1,5 @@
|
||||
+[Desktop Entry]
|
||||
+Name=Compiz custom (create wrapper script 'compiz-kde-launcher' to launch it)
|
||||
+Exec=compiz-kde-launcher
|
||||
+TryExec=compiz
|
||||
+X-KDE-WindowManagerId=compiz
|
||||
Index: ksmserver/windowmanagers/kwin4.desktop
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/kwin4.desktop
|
||||
@@ -0,0 +1,6 @@
|
||||
+[Desktop Entry]
|
||||
+Name=KWin (KDE4)
|
||||
+Exec=kde4 /usr/bin/kwin
|
||||
+TryExec=/usr/bin/kwin
|
||||
+X-KDE-WindowManagerId=kwin
|
||||
+
|
||||
Index: ksmserver/windowmanagers/metacity.desktop
|
||||
===================================================================
|
||||
--- /dev/null
|
||||
+++ ./ksmserver/windowmanagers/metacity.desktop
|
||||
@@ -0,0 +1,4 @@
|
||||
+[Desktop Entry]
|
||||
+Name=Metacity (GNOME)
|
||||
+Exec=metacity
|
||||
+TryExec=metacity
|
||||
--- ./kcontrol/smserver/smserverconfigdlg.ui.ori 2013-05-08 20:42:59.226232919 +0200
|
||||
+++ ./kcontrol/smserver/smserverconfigdlg.ui 2013-05-08 20:45:53.648749758 +0200
|
||||
@@ -1,4 +1,4 @@
|
||||
-<!DOCTYPE UI><UI version="3.2" stdsetdef="1">
|
||||
+<!DOCTYPE UI><UI version="3.3" stdsetdef="1">
|
||||
<class>SMServerConfigDlg</class>
|
||||
<widget class="TQWidget">
|
||||
<property name="name">
|
||||
@@ -8,8 +8,8 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
- <width>325</width>
|
||||
- <height>366</height>
|
||||
+ <width>334</width>
|
||||
+ <height>476</height>
|
||||
</rect>
|
||||
</property>
|
||||
<property name="caption">
|
||||
@@ -173,6 +173,24 @@
|
||||
</widget>
|
||||
</vbox>
|
||||
</widget>
|
||||
+ <widget class="TQGroupBox">
|
||||
+ <property name="name">
|
||||
+ <cstring>windowManagerGroup</cstring>
|
||||
+ </property>
|
||||
+ <property name="title">
|
||||
+ <string>Window Manager</string>
|
||||
+ </property>
|
||||
+ <hbox>
|
||||
+ <property name="name">
|
||||
+ <cstring>unnamed</cstring>
|
||||
+ </property>
|
||||
+ <widget class="TQComboBox">
|
||||
+ <property name="name">
|
||||
+ <cstring>windowManagerCombo</cstring>
|
||||
+ </property>
|
||||
+ </widget>
|
||||
+ </hbox>
|
||||
+ </widget>
|
||||
<widget class="TQButtonGroup">
|
||||
<property name="name">
|
||||
<cstring>advancedGroup</cstring>
|
||||
@@ -279,6 +297,12 @@
|
||||
<receiver>SMServerConfigDlg</receiver>
|
||||
<slot>configChanged()</slot>
|
||||
</connection>
|
||||
+ <connection>
|
||||
+ <sender>windowManagerCombo</sender>
|
||||
+ <signal>activated(int)</signal>
|
||||
+ <receiver>SMServerConfigDlg</receiver>
|
||||
+ <slot>configChanged()</slot>
|
||||
+ </connection>
|
||||
</connections>
|
||||
<includes>
|
||||
<include location="global" impldecl="in implementation">kdialog.h</include>
|
||||
--- ./kcontrol/smserver/kcmsmserver.cpp.ORI 2013-05-08 20:47:16.855088794 +0200
|
||||
+++ ./kcontrol/smserver/kcmsmserver.cpp 2013-05-08 20:57:27.009783724 +0200
|
||||
@@ -22,6 +22,8 @@
|
||||
#include <tqcheckbox.h>
|
||||
#include <tqlayout.h>
|
||||
#include <tqradiobutton.h>
|
||||
+#include <tqcombobox.h>
|
||||
+#include <tqfile.h>
|
||||
|
||||
#include <dcopclient.h>
|
||||
|
||||
@@ -29,6 +31,12 @@
|
||||
#include <kconfig.h>
|
||||
#include <kgenericfactory.h>
|
||||
#include <klineedit.h>
|
||||
+#include <kstandarddirs.h>
|
||||
+#include <tqregexp.h>
|
||||
+#include <kdesktopfile.h>
|
||||
+#include <kdebug.h>
|
||||
+#include <kprocess.h>
|
||||
+#include <kmessagebox.h>
|
||||
|
||||
#include "kcmsmserver.h"
|
||||
#include "smserverconfigimpl.h"
|
||||
@@ -52,6 +60,7 @@
|
||||
|
||||
dialog->show();
|
||||
topLayout->add(dialog);
|
||||
+ KGlobal::dirs()->addResourceType( "windowmanagers", "share/apps/ksmserver/windowmanagers" );
|
||||
load();
|
||||
|
||||
}
|
||||
@@ -90,6 +99,7 @@
|
||||
dialog->logoutRadio->setChecked(true);
|
||||
break;
|
||||
}
|
||||
+ loadWMs(c->readEntry("windowManager", "kwin"));
|
||||
dialog->excludeLineedit->setText( c->readEntry("excludeApps"));
|
||||
|
||||
c->setGroup("Logout");
|
||||
@@ -121,6 +131,7 @@
|
||||
dialog->rebootRadio->isChecked() ?
|
||||
int(KApplication::ShutdownTypeReboot) :
|
||||
int(KApplication::ShutdownTypeNone));
|
||||
+ c->writeEntry("windowManager", currentWM());
|
||||
c->writeEntry("excludeApps", dialog->excludeLineedit->text());
|
||||
c->setGroup("Logout");
|
||||
c->writeEntry( "showLogoutStatusDlg", dialog->showLogoutStatusDialog->isChecked());
|
||||
@@ -131,6 +142,12 @@
|
||||
// update the k menu if necessary
|
||||
TQByteArray data;
|
||||
kapp->dcopClient()->send( "kicker", "kicker", "configure()", data );
|
||||
+ if( oldwm != currentWM())
|
||||
+ { // TODO switch it already in the session instead and tell ksmserver
|
||||
+ KMessageBox::information( this,
|
||||
+ i18n( "The new window manager will be used when TDE is started the next time." ),
|
||||
+ i18n( "Window manager change" ), "windowmanagerchange" );
|
||||
+ }
|
||||
}
|
||||
|
||||
void SMServerConfig::defaults()
|
||||
@@ -138,5 +155,79 @@
|
||||
load( true );
|
||||
}
|
||||
|
||||
+static bool noDisplay( KDesktopFile& f )
|
||||
+{
|
||||
+ KConfigGroup gr( &f, "Desktop Entry" );
|
||||
+ if (gr.readBoolEntry("NoDisplay", false)) {
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (gr.hasKey("OnlyShowIn")) {
|
||||
+ if (!gr.readListEntry("OnlyShowIn", ';').contains("KDE"))
|
||||
+ return true;
|
||||
+ }
|
||||
+ if (gr.hasKey("NotShowIn")) {
|
||||
+ if (gr.readListEntry("NotShowIn", ';').contains("KDE"))
|
||||
+ return true;
|
||||
+ }
|
||||
+ return false;
|
||||
+}
|
||||
+
|
||||
+void SMServerConfig::loadWMs( const TQString& current )
|
||||
+{
|
||||
+ TQString kwinname = i18n( "KWin (KDE default)" );
|
||||
+ dialog->windowManagerCombo->insertItem( kwinname );
|
||||
+ dialog->windowManagerCombo->setCurrentItem( 0 );
|
||||
+ wms[ kwinname ] = "kwin";
|
||||
+ oldwm = "kwin";
|
||||
+ TQStringList list = KGlobal::dirs()->findAllResources( "windowmanagers", TQString(), false, true );
|
||||
+ TQRegExp reg( ".*/([^/\\.]*)\\.[^/\\.]*" );
|
||||
+ for( TQStringList::ConstIterator it = list.begin();
|
||||
+ it != list.end();
|
||||
+ ++it )
|
||||
+ {
|
||||
+ TQString wmfile = *it;
|
||||
+ KDesktopFile file( wmfile );
|
||||
+ if( noDisplay( file )) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if( !file.tryExec()) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ file.setDesktopGroup();
|
||||
+ TQString testexec = file.readEntry( "X-KDE-WindowManagerTestExec" );
|
||||
+ if( !testexec.isEmpty())
|
||||
+ {
|
||||
+ int ret = system( TQFile::encodeName( testexec ));
|
||||
+ if( !WIFEXITED( ret ) || WEXITSTATUS( ret ) != 0 ) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ }
|
||||
+ TQString name = file.readName();
|
||||
+ if( name.isEmpty()) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ if( !reg.exactMatch( wmfile )) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ TQString wm = reg.cap( 1 );
|
||||
+ if( wms.values().contains( wm )) {
|
||||
+ continue;
|
||||
+ }
|
||||
+ wms[ name ] = wm;
|
||||
+ dialog->windowManagerCombo->insertItem( name );
|
||||
+ if( wms[ name ] == current ) // make it selected
|
||||
+ {
|
||||
+ dialog->windowManagerCombo->setCurrentItem( dialog->windowManagerCombo->count() - 1 );
|
||||
+ oldwm = wm;
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+TQString SMServerConfig::currentWM() const
|
||||
+{
|
||||
+ return wms[ dialog->windowManagerCombo->currentText() ];
|
||||
+}
|
||||
+
|
||||
+
|
||||
#include "kcmsmserver.moc"
|
||||
|
||||
--- ./kcontrol/smserver/kcmsmserver.h.ORI 2013-05-08 20:58:45.880171397 +0200
|
||||
+++ ./kcontrol/smserver/kcmsmserver.h 2013-05-08 20:59:21.030453176 +0200
|
||||
@@ -40,6 +40,10 @@
|
||||
|
||||
private:
|
||||
SMServerConfigImpl* dialog;
|
||||
+ void loadWMs( const TQString& current );
|
||||
+ TQString currentWM() const;
|
||||
+ TQMap< TQString, TQString > wms; // i18n text -> internal name
|
||||
+ TQString oldwm; // the original value
|
||||
|
||||
};
|
||||
|
@ -1,152 +0,0 @@
|
||||
--- ./kioslave/media/libmediacommon/medium.cpp.ori 2013-05-08 22:57:09.317384423 +0200
|
||||
+++ ./kioslave/media/libmediacommon/medium.cpp 2013-05-08 22:57:36.730837358 +0200
|
||||
@@ -44,6 +44,7 @@
|
||||
loadUserLabel();
|
||||
|
||||
m_halmounted = false;
|
||||
+ m_isHotplug = false;
|
||||
}
|
||||
|
||||
Medium::Medium()
|
||||
@@ -65,6 +66,7 @@
|
||||
m_properties+= TQString::null; /* CLEAR_DEVICE_UDI */
|
||||
|
||||
m_halmounted = false;
|
||||
+ m_isHotplug = false;
|
||||
}
|
||||
|
||||
const Medium Medium::create(const TQStringList &properties)
|
||||
--- ./kioslave/media/libmediacommon/medium.h.ORI 2013-05-08 22:59:10.772959829 +0200
|
||||
+++ ./kioslave/media/libmediacommon/medium.h 2013-05-08 22:59:56.602044404 +0200
|
||||
@@ -92,6 +92,9 @@
|
||||
void setHalMounted(bool flag) const { m_halmounted = flag; }
|
||||
bool halMounted() const { return m_halmounted; }
|
||||
|
||||
+ void setIsHotplug( bool state ) { m_isHotplug = state; }
|
||||
+ bool isHotplug() const { return m_isHotplug; }
|
||||
+
|
||||
//private:
|
||||
Medium();
|
||||
|
||||
@@ -100,6 +103,8 @@
|
||||
|
||||
TQStringList m_properties;
|
||||
mutable bool m_halmounted;
|
||||
+
|
||||
+ bool m_isHotplug;
|
||||
|
||||
friend class TQValueListNode<const Medium>;
|
||||
};
|
||||
--- ./kioslave/media/mediamanager/mediamanager.cpp.ori 2013-05-08 23:00:39.673183801 +0200
|
||||
+++ ./kioslave/media/mediamanager/mediamanager.cpp 2013-05-08 23:04:47.639224260 +0200
|
||||
@@ -354,6 +354,57 @@
|
||||
emit mediumChanged(name);
|
||||
}
|
||||
|
||||
+TQString MediaManager::unmountAllSuspend()
|
||||
+{
|
||||
+ TQPtrList<Medium> list = m_mediaList.list();
|
||||
+
|
||||
+ TQPtrList<Medium>::const_iterator it = list.begin();
|
||||
+ TQPtrList<Medium>::const_iterator end = list.end();
|
||||
+
|
||||
+ TQString result;
|
||||
+
|
||||
+ for (; it!=end; ++it)
|
||||
+ {
|
||||
+ if ( (*it)->isMounted() && (*it)->isHotplug() )
|
||||
+ {
|
||||
+ TQString tmp = unmount( (*it)->id() );
|
||||
+ if ( !tmp.isEmpty() ) { // umount failed
|
||||
+ result = tmp;
|
||||
+ } else {
|
||||
+ m_suspendResumeMountList.append( (*it)->id() );
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ // return last error
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
+TQString MediaManager::remountAllResume()
|
||||
+{
|
||||
+ TQString result;
|
||||
+
|
||||
+ for (TQStringList::const_iterator it = m_suspendResumeMountList.begin();
|
||||
+ it != m_suspendResumeMountList.end();
|
||||
+ ++it)
|
||||
+ {
|
||||
+ const Medium *m = m_mediaList.findById(*it);
|
||||
+
|
||||
+ if ( m && m->needMounting() )
|
||||
+ {
|
||||
+ TQString tmp = mount( *it );
|
||||
+ if ( !tmp.isEmpty() ) { // mount failed
|
||||
+ result = tmp;
|
||||
+ }
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ m_suspendResumeMountList.clear();
|
||||
+
|
||||
+ // return last error
|
||||
+ return result;
|
||||
+}
|
||||
+
|
||||
|
||||
extern "C" {
|
||||
KDE_EXPORT KDEDModule *create_mediamanager(const TQCString &obj)
|
||||
--- ./kioslave/media/mediamanager/mediamanager.h.ORI 2013-05-08 23:05:36.250251036 +0200
|
||||
+++ ./kioslave/media/mediamanager/mediamanager.h 2013-05-08 23:07:27.650019601 +0200
|
||||
@@ -60,6 +60,20 @@
|
||||
bool removableUnplug(const TQString &devNode);
|
||||
bool removableCamera(const TQString &devNode);
|
||||
|
||||
+ /**
|
||||
+ * Unmount manually all partitions when going to suspend
|
||||
+ *
|
||||
+ * @return last error if any
|
||||
+ */
|
||||
+ TQString unmountAllSuspend();
|
||||
+
|
||||
+ /**
|
||||
+ * Remount previously unmounted partitions in unmountAllSuspend()
|
||||
+ *
|
||||
+ * @return last error if any
|
||||
+ */
|
||||
+ TQString remountAllResume();
|
||||
+
|
||||
k_dcop_signals:
|
||||
void mediumAdded(const TQString &name, bool allowNotification);
|
||||
void mediumRemoved(const TQString &name, bool allowNotification);
|
||||
@@ -87,6 +101,8 @@
|
||||
HALBackend *m_halbackend;
|
||||
MediaDirNotify m_dirNotify;
|
||||
FstabBackend *m_fstabbackend;
|
||||
+ TQStringList m_suspendResumeMountList;
|
||||
+
|
||||
};
|
||||
|
||||
#endif
|
||||
--- ./kioslave/media/mediamanager/halbackend.cpp.ori 2013-05-08 23:08:12.196126863 +0200
|
||||
+++ ./kioslave/media/mediamanager/halbackend.cpp 2013-05-08 23:08:51.096347073 +0200
|
||||
@@ -541,6 +541,7 @@
|
||||
libhal_volume_is_mounted(halVolume) ); /* Mounted ? */
|
||||
}
|
||||
|
||||
+ medium->setIsHotplug( libhal_drive_is_hotpluggable(halDrive) );
|
||||
|
||||
char* name = libhal_volume_policy_compute_display_name(halDrive, halVolume, m_halStoragePolicy);
|
||||
TQString volume_name = TQString::fromUtf8(name);
|
||||
--- ./kioslave/media/mediamanager/halbackend.h.ORI 2013-05-08 23:09:35.761451488 +0200
|
||||
+++ ./kioslave/media/mediamanager/halbackend.h 2013-05-08 23:10:21.608531952 +0200
|
||||
@@ -89,6 +89,8 @@
|
||||
TQString decrypt(const TQString &id, const TQString &password);
|
||||
TQString undecrypt(const TQString &id);
|
||||
|
||||
+ static bool isHotplug( const TQString & id );
|
||||
+
|
||||
private:
|
||||
/**
|
||||
* Append a device in the media list. This function will check if the device
|
@ -1,186 +0,0 @@
|
||||
--- trinity-tdebase-3.5.13.2~pre102+43d29f86/kcontrol/screensaver/scrnsave.h.ORI 2013-05-14 22:12:18.159235590 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre102+43d29f86/kcontrol/screensaver/scrnsave.h 2013-05-14 22:12:56.657422259 +0200
|
||||
@@ -58,6 +58,7 @@
|
||||
void slotLock( bool );
|
||||
void slotDelaySaverStart( bool );
|
||||
void slotUseTSAK( bool );
|
||||
+ void slotVibrateUnlock( bool );
|
||||
void slotUseUnmanagedLockWindows( bool );
|
||||
void slotHideActiveWindowsFromSaver( bool );
|
||||
void processLockouts();
|
||||
@@ -101,6 +102,7 @@
|
||||
TQGroupBox *mSettingsGroup;
|
||||
TQCheckBox *mDelaySaverStartCheckBox;
|
||||
TQCheckBox *mUseTSAKCheckBox;
|
||||
+ TQCheckBox *mVibrateUnlockCheckBox;
|
||||
TQCheckBox *mUseUnmanagedLockWindowsCheckBox;
|
||||
TQCheckBox *mHideActiveWindowsFromSaverCheckBox;
|
||||
|
||||
@@ -119,6 +121,7 @@
|
||||
bool mImmutable;
|
||||
bool mDelaySaverStart;
|
||||
bool mUseTSAK;
|
||||
+ bool mVibrateUnlock;
|
||||
bool mUseUnmanagedLockWindows;
|
||||
bool mHideActiveWindowsFromSaver;
|
||||
|
||||
--- trinity-tdebase-3.5.13.2~pre102+43d29f86/kcontrol/screensaver/scrnsave.cpp.vibrate_dialog 2013-04-26 22:15:23.000000000 +0200
|
||||
+++ trinity-tdebase-3.5.13.2~pre102+43d29f86/kcontrol/screensaver/scrnsave.cpp 2013-05-14 22:24:37.354375502 +0200
|
||||
@@ -270,6 +270,13 @@
|
||||
settingsGroupLayout->addWidget(mHideActiveWindowsFromSaverCheckBox, 3, 1);
|
||||
TQWhatsThis::add( mHideActiveWindowsFromSaverCheckBox, i18n("Hide all active windows from the screen saver and use the desktop background as the screen saver input.") );
|
||||
|
||||
+ mVibrateUnlockCheckBox = new TQCheckBox( i18n("&Vibrate unlock dialog box on failure"), mSettingsGroup );
|
||||
+ mVibrateUnlockCheckBox->setEnabled( true );
|
||||
+ mVibrateUnlockCheckBox->setChecked( mVibrateUnlock );
|
||||
+ connect( mVibrateUnlockCheckBox, TQT_SIGNAL( toggled( bool ) ), this, TQT_SLOT( slotVibrateUnlock( bool ) ) );
|
||||
+ settingsGroupLayout->addWidget(mVibrateUnlockCheckBox, 4, 1);
|
||||
+ TQWhatsThis::add( mVibrateUnlockCheckBox, i18n("Makes the unlock dialog box vibrate when entering an incorrect password.") );
|
||||
+
|
||||
// right column
|
||||
TQBoxLayout* rightColumnLayout = new TQVBoxLayout(topLayout, KDialog::spacingHint());
|
||||
|
||||
@@ -429,6 +436,7 @@
|
||||
mLock = config->readBoolEntry("Lock", false);
|
||||
mDelaySaverStart = config->readBoolEntry("DelaySaverStart", true);
|
||||
mUseTSAK = config->readBoolEntry("UseTDESAK", true);
|
||||
+ mVibrateUnlock = config->readBoolEntry("VibrateUnlock", true);
|
||||
mUseUnmanagedLockWindows = config->readBoolEntry("UseUnmanagedLockWindows", false);
|
||||
mHideActiveWindowsFromSaver = config->readBoolEntry("HideActiveWindowsFromSaver", true);
|
||||
mSaver = config->readEntry("Saver");
|
||||
@@ -481,6 +489,7 @@
|
||||
config->writeEntry("Lock", mLock);
|
||||
config->writeEntry("DelaySaverStart", mDelaySaverStart);
|
||||
config->writeEntry("UseTDESAK", mUseTSAK);
|
||||
+ config->writeEntry("VibrateUnlock", mVibrateUnlock);
|
||||
config->writeEntry("UseUnmanagedLockWindows", mUseUnmanagedLockWindows);
|
||||
config->writeEntry("HideActiveWindowsFromSaver", mHideActiveWindowsFromSaver);
|
||||
|
||||
@@ -688,10 +697,14 @@
|
||||
mUseTSAKCheckBox->setChecked( false );
|
||||
}
|
||||
if (!mUseUnmanagedLockWindows) {
|
||||
+ mVibrateUnlockCheckBox->setEnabled( true );
|
||||
+ mVibrateUnlockCheckBox->setChecked( mVibrateUnlock );
|
||||
mHideActiveWindowsFromSaverCheckBox->setEnabled( true );
|
||||
mHideActiveWindowsFromSaverCheckBox->setChecked( mHideActiveWindowsFromSaver );
|
||||
}
|
||||
else {
|
||||
+ mVibrateUnlockCheckBox->setEnabled( false );
|
||||
+ mVibrateUnlockCheckBox->setChecked( false );
|
||||
mHideActiveWindowsFromSaverCheckBox->setEnabled( false );
|
||||
mHideActiveWindowsFromSaverCheckBox->setChecked( false );
|
||||
}
|
||||
@@ -936,6 +949,16 @@
|
||||
processLockouts();
|
||||
mChanged = true;
|
||||
emit changed(true);
|
||||
+}
|
||||
+
|
||||
+//---------------------------------------------------------------------------
|
||||
+//
|
||||
+void KScreenSaver::slotVibrateUnlock( bool u )
|
||||
+{
|
||||
+ if (mVibrateUnlockCheckBox->isEnabled()) mVibrateUnlock = u;
|
||||
+ processLockouts();
|
||||
+ mChanged = true;
|
||||
+ emit changed(true);
|
||||
}
|
||||
|
||||
//---------------------------------------------------------------------------
|
||||
--- trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesktop/lock/lockdlg.h.vibrate_dialog 2013-01-09 02:12:13.000000000 +0100
|
||||
+++ trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesktop/lock/lockdlg.h 2013-05-14 22:42:50.562878532 +0200
|
||||
@@ -60,6 +60,7 @@
|
||||
void slotOK();
|
||||
void layoutClicked();
|
||||
void slotActivity();
|
||||
+ void moveTimerDone();
|
||||
|
||||
protected slots:
|
||||
virtual void reject();
|
||||
@@ -79,6 +80,8 @@
|
||||
void handleVerify();
|
||||
void reapVerify();
|
||||
void cantCheck();
|
||||
+ void movedialog( int _move );
|
||||
+ void badPasswordLogin();
|
||||
GreeterPluginHandle *mPlugin;
|
||||
KGreeterPlugin *greet;
|
||||
TQFrame *frame;
|
||||
@@ -95,6 +98,8 @@
|
||||
int sPid, sFd;
|
||||
TQListView *lv;
|
||||
TQDateTime m_lockStartDT;
|
||||
+ bool waitMoveDialog;
|
||||
+ bool VibrateUnlock;
|
||||
};
|
||||
|
||||
#endif
|
||||
--- trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesktop/lock/lockdlg.cc.vibrate_dialog 2013-01-09 02:12:13.000000000 +0100
|
||||
+++ trinity-tdebase-3.5.13.2~pre102+43d29f86/kdesktop/lock/lockdlg.cc 2013-05-14 22:42:12.809621715 +0200
|
||||
@@ -55,6 +55,7 @@
|
||||
#include <X11/keysym.h>
|
||||
#include <X11/Xatom.h>
|
||||
#include <fixx11h.h>
|
||||
+#include <kapplication.h>
|
||||
|
||||
#ifndef AF_LOCAL
|
||||
# define AF_LOCAL AF_UNIX
|
||||
@@ -246,6 +247,11 @@
|
||||
mLayoutButton->hide(); // no kxkb running
|
||||
}
|
||||
capsLocked();
|
||||
+
|
||||
+ KConfig* config = new KConfig("kdesktoprc");
|
||||
+ config->setGroup("ScreenSaver");
|
||||
+ VibrateUnlock = config->readBoolEntry("VibrateUnlock", true);
|
||||
+ delete config;
|
||||
}
|
||||
|
||||
PasswordDlg::~PasswordDlg()
|
||||
@@ -302,6 +308,37 @@
|
||||
}
|
||||
}
|
||||
|
||||
+void PasswordDlg::movedialog( int _move )
|
||||
+{
|
||||
+ waitMoveDialog = true;
|
||||
+ this->move(pos().x()+_move, pos().y());
|
||||
+ TQTimer::singleShot( 50, this, TQT_SLOT(moveTimerDone()) );
|
||||
+ while (waitMoveDialog) {
|
||||
+ kapp->processEvents();
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
+void PasswordDlg::moveTimerDone()
|
||||
+{
|
||||
+ waitMoveDialog = false;
|
||||
+}
|
||||
+
|
||||
+void PasswordDlg::badPasswordLogin()
|
||||
+{
|
||||
+ if ( VibrateUnlock && mUnlockingFailed )
|
||||
+ {
|
||||
+ for ( int i = 0 ; i<2 ; i++)
|
||||
+ {
|
||||
+ movedialog( 10 );
|
||||
+ movedialog( -20 );
|
||||
+ movedialog( 20 );
|
||||
+ movedialog( -20 );
|
||||
+ movedialog( 20 );
|
||||
+ movedialog( -10 );
|
||||
+ }
|
||||
+ }
|
||||
+}
|
||||
+
|
||||
//---------------------------------------------------------------------------
|
||||
//
|
||||
// Handle timer events.
|
||||
@@ -437,6 +474,7 @@
|
||||
ok->setEnabled(false);
|
||||
cancel->setEnabled(false);
|
||||
mNewSessButton->setEnabled( false );
|
||||
+ badPasswordLogin();
|
||||
return;
|
||||
case AuthAbort:
|
||||
return;
|
Binary file not shown.
Loading…
Reference in new issue