Browse Source

Added checkbox to invert mouse wheel direction in window's titlebar and frame actions.

This resolves issue TDE/tde#64.

Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>
pull/220/head
Michele Calgaro 9 months ago
parent
commit
11a496c359
Signed by: MicheleC
GPG Key ID: 2A75B7CA8ADED5CF
  1. 61
      twin/kcmtwin/twinoptions/mouse.cpp
  2. 14
      twin/kcmtwin/twinoptions/mouse.h
  3. 22
      twin/options.cpp
  4. 32
      twin/options.h

61
twin/kcmtwin/twinoptions/mouse.cpp

@ -18,7 +18,7 @@
*/
#include <tqlabel.h>
#include <tqcombobox.h>
#include <tqcheckbox.h>
#include <tqwhatsthis.h>
#include <tqlayout.h>
#include <tqvgroupbox.h>
@ -178,23 +178,28 @@ KTitleBarActionsConfig::KTitleBarActionsConfig (bool _standAlone, TDEConfig *_co
hlayoutW->addWidget(label);
txtButton4 = i18n("Handle mouse wheel events");
TQWhatsThis::add( label, txtButton4);
// Titlebar and frame mouse Wheel
// Titlebar and frame mouse Wheel
TQComboBox* comboW = new TQComboBox(this);
comboW->insertItem(i18n("Raise/Lower"));
comboW->insertItem(i18n("Shade/Unshade"));
comboW->insertItem(i18n("Maximize/Restore"));
comboW->insertItem(i18n("Keep Above/Below"));
comboW->insertItem(i18n("Move to Previous/Next Desktop"));
comboW->insertItem(i18n("Change Opacity"));
comboW->insertItem(i18n("Nothing"));
comboW->insertItem(i18n("Keep Above/Below"));
comboW->insertItem(i18n("Move to Previous/Next Desktop"));
comboW->insertItem(i18n("Change Opacity"));
comboW->insertItem(i18n("Nothing"));
comboW->setSizePolicy(TQSizePolicy(TQSizePolicy::MinimumExpanding, TQSizePolicy::Fixed));
connect(comboW, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
hlayoutW->addWidget(comboW);
coTiAct4 = comboW;
coTiW = comboW;
TQWhatsThis::add(comboW, txtButton4);
label->setBuddy(comboW);
cbTiRevW = new TQCheckBox(i18n("Reverse wheel direction"), this);
connect(cbTiRevW, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
TQWhatsThis::add( cbTiRevW, i18n("Use this to reverse the action of the mouse wheel.") );
hlayoutW->addWidget(cbTiRevW);
/** Titlebar and frame **************/
box = new TQVGroupBox( i18n("Titlebar && Frame"), this, "Titlebar and Frame");
@ -491,8 +496,8 @@ void KTitleBarActionsConfig::setComboText( TQComboBox* combo, const char*txt )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiAc, txt ));
else if( combo == coTiInAct1 || combo == coTiInAct2 || combo == coTiInAct3 )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiInAc, txt ));
else if( combo == coTiAct4 )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiWAc, txt ));
else if( combo == coTiW )
combo->setCurrentItem( tbl_txt_lookup( tbl_TiWAc, txt ));
else if( combo == coMax[0] || combo == coMax[1] || combo == coMax[2] )
{
combo->setCurrentItem( tbl_txt_lookup( tbl_Max, txt ));
@ -538,10 +543,11 @@ void KTitleBarActionsConfig::load()
setComboText(coTiAct1,config->readEntry("CommandActiveTitlebar1","Raise").ascii());
setComboText(coTiAct2,config->readEntry("CommandActiveTitlebar2","Lower").ascii());
setComboText(coTiAct3,config->readEntry("CommandActiveTitlebar3","Operations menu").ascii());
setComboText(coTiAct4,config->readEntry("CommandTitlebarWheel","Nothing").ascii());
setComboText(coTiInAct1,config->readEntry("CommandInactiveTitlebar1","Activate and raise").ascii());
setComboText(coTiInAct2,config->readEntry("CommandInactiveTitlebar2","Activate and lower").ascii());
setComboText(coTiInAct3,config->readEntry("CommandInactiveTitlebar3","Operations menu").ascii());
setComboText(coTiW,config->readEntry("CommandTitlebarWheel","Nothing").ascii());
cbTiRevW->setChecked(config->readBoolEntry("CommandTitlebarReverseWheel", false));
}
void KTitleBarActionsConfig::save()
@ -556,10 +562,11 @@ void KTitleBarActionsConfig::save()
config->writeEntry("CommandActiveTitlebar2", functionTiAc(coTiAct2->currentItem()));
config->writeEntry("CommandActiveTitlebar3", functionTiAc(coTiAct3->currentItem()));
config->writeEntry("CommandInactiveTitlebar1", functionTiInAc(coTiInAct1->currentItem()));
config->writeEntry("CommandTitlebarWheel", functionTiWAc(coTiAct4->currentItem()));
config->writeEntry("CommandInactiveTitlebar2", functionTiInAc(coTiInAct2->currentItem()));
config->writeEntry("CommandInactiveTitlebar3", functionTiInAc(coTiInAct3->currentItem()));
config->writeEntry("CommandTitlebarWheel", functionTiWAc(coTiW->currentItem()));
config->writeEntry("CommandTitlebarReverseWheel", cbTiRevW->isChecked());
if (standAlone)
{
config->sync();
@ -575,10 +582,11 @@ void KTitleBarActionsConfig::defaults()
setComboText(coTiAct1,"Raise");
setComboText(coTiAct2,"Lower");
setComboText(coTiAct3,"Operations menu");
setComboText(coTiAct4,"Nothing");
setComboText(coTiInAct1,"Activate and raise");
setComboText(coTiInAct2,"Activate and lower");
setComboText(coTiInAct3,"Operations menu");
setComboText(coTiW,"Nothing");
cbTiRevW->setChecked(false);
for (int t = 0; t < 3; ++t)
setComboText(coMax[t], tbl_Max[t]);
}
@ -676,7 +684,7 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
TQWhatsThis::add( box, i18n("Here you can customize TDE's behavior when clicking somewhere into"
" a window while pressing a modifier key."));
grid = new TQGrid(5, Qt::Vertical, box);
grid = new TQGrid(6, Qt::Vertical, box);
// Labels
label = new TQLabel(i18n("Modifier key:"), grid);
@ -716,6 +724,8 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
" in a window while pressing the modifier key.");
TQWhatsThis::add( label, strAllW);
label = new TQLabel("", grid); // Dummy label to keep grid in order
// Combo's
combo = new TQComboBox(grid);
combo->insertItem(i18n("Meta"));
@ -756,14 +766,18 @@ KWindowActionsConfig::KWindowActionsConfig (bool _standAlone, TDEConfig *_config
combo->insertItem(i18n("Raise/Lower"));
combo->insertItem(i18n("Shade/Unshade"));
combo->insertItem(i18n("Maximize/Restore"));
combo->insertItem(i18n("Keep Above/Below"));
combo->insertItem(i18n("Move to Previous/Next Desktop"));
combo->insertItem(i18n("Change Opacity"));
combo->insertItem(i18n("Nothing"));
combo->insertItem(i18n("Keep Above/Below"));
combo->insertItem(i18n("Move to Previous/Next Desktop"));
combo->insertItem(i18n("Change Opacity"));
combo->insertItem(i18n("Nothing"));
connect(combo, TQT_SIGNAL(activated(int)), TQT_SLOT(changed()));
coAllW = combo;
TQWhatsThis::add( combo, strAllW );
cbAllRevW = new TQCheckBox(i18n("Reverse wheel direction"), grid);
connect(cbAllRevW, TQT_SIGNAL(toggled(bool)), TQT_SLOT(changed()));
TQWhatsThis::add( cbAllRevW, i18n("Use this to reverse the action of the mouse wheel.") );
layout->addStretch();
load();
@ -784,7 +798,7 @@ void KWindowActionsConfig::setComboText( TQComboBox* combo, const char*txt )
else if( combo == coAll1 || combo == coAll2 || combo == coAll3 )
combo->setCurrentItem( tbl_txt_lookup( tbl_All, txt ));
else if( combo == coAllW )
combo->setCurrentItem( tbl_txt_lookup( tbl_AllW, txt ));
combo->setCurrentItem( tbl_txt_lookup( tbl_AllW, txt ));
else
abort();
}
@ -820,6 +834,7 @@ void KWindowActionsConfig::load()
setComboText(coAll2,config->readEntry("CommandAll2","Toggle raise and lower").ascii());
setComboText(coAll3,config->readEntry("CommandAll3","Resize").ascii());
setComboText(coAllW,config->readEntry("CommandAllWheel","Nothing").ascii());
cbAllRevW->setChecked(config->readBoolEntry("CommandAllReverseWheel", false));
}
void KWindowActionsConfig::save()
@ -833,7 +848,8 @@ void KWindowActionsConfig::save()
config->writeEntry("CommandAll2", functionAll(coAll2->currentItem()));
config->writeEntry("CommandAll3", functionAll(coAll3->currentItem()));
config->writeEntry("CommandAllWheel", functionAllW(coAllW->currentItem()));
config->writeEntry("CommandAllReverseWheel", cbAllRevW->isChecked());
if (standAlone)
{
config->sync();
@ -853,4 +869,5 @@ void KWindowActionsConfig::defaults()
setComboText(coAll2,"Toggle raise and lower");
setComboText(coAll3,"Resize");
setComboText(coAllW,"Nothing");
cbAllRevW->setChecked(false);
}

14
twin/kcmtwin/twinoptions/mouse.h

@ -22,6 +22,7 @@
#ifndef __KKWMMOUSECONFIG_H__
#define __KKWMMOUSECONFIG_H__
class TQCheckBox;
class TDEConfig;
#include <tqwidget.h>
@ -33,7 +34,7 @@ class TDEConfig;
class ToolTipComboBox: public TQComboBox
{
Q_OBJECT
public:
ToolTipComboBox(TQWidget * owner, char const * const * toolTips_)
: TQComboBox(owner)
@ -62,18 +63,18 @@ public:
void defaults();
public slots:
void changed() { emit TDECModule::changed(true); }
void changed() { emit TDECModule::changed(true); }
private:
TQComboBox* coTiDbl;
TQComboBox* coTiAct1;
TQComboBox* coTiAct2;
TQComboBox* coTiAct3;
TQComboBox* coTiAct4;
TQComboBox* coTiInAct1;
TQComboBox* coTiInAct2;
TQComboBox* coTiInAct3;
TQComboBox* coTiW;
TQCheckBox* cbTiRevW;
ToolTipComboBox * coMax[3];
@ -82,7 +83,7 @@ private:
const char* functionTiDbl(int);
const char* functionTiAc(int);
const char* functionTiWAc(int);
const char* functionTiWAc(int);
const char* functionTiInAc(int);
const char* functionMax(int);
@ -108,7 +109,7 @@ public:
void defaults();
public slots:
void changed() { emit TDECModule::changed(true); }
void changed() { emit TDECModule::changed(true); }
private:
TQComboBox* coWin1;
@ -120,6 +121,7 @@ private:
TQComboBox* coAll2;
TQComboBox* coAll3;
TQComboBox* coAllW;
TQCheckBox* cbAllRevW;
TDEConfig *config;
bool standAlone;

22
twin/options.cpp

@ -71,12 +71,12 @@ unsigned long Options::updateSettings()
altTabStyle = KDE; // what a default :-)
if ( val == "CDE" )
altTabStyle = CDE;
separateScreenFocus = config->readBoolEntry( "SeparateScreenFocus", false );
activeMouseScreen = config->readBoolEntry( "ActiveMouseScreen", focusPolicy != ClickToFocus );
rollOverDesktops = config->readBoolEntry("RollOverDesktops", TRUE);
// focusStealingPreventionLevel = config->readNumEntry( "FocusStealingPreventionLevel", 2 );
// TODO use low level for now
focusStealingPreventionLevel = config->readNumEntry( "FocusStealingPreventionLevel", 1 );
@ -101,14 +101,14 @@ unsigned long Options::updateSettings()
animateMinimize = config->readBoolEntry("AnimateMinimize", TRUE );
animateMinimizeSpeed = config->readNumEntry("AnimateMinimizeSpeed", 5 );
if( focusPolicy == ClickToFocus )
if( focusPolicy == ClickToFocus )
{
autoRaise = false;
autoRaiseInterval = 0;
delayFocus = false;
delayFocusInterval = 0;
}
else
else
{
autoRaise = config->readBoolEntry("AutoRaise", FALSE );
autoRaiseInterval = config->readNumEntry("AutoRaiseInterval", 0 );
@ -159,6 +159,7 @@ unsigned long Options::updateSettings()
CmdInactiveTitlebar2 = mouseCommand(config->readEntry("CommandInactiveTitlebar2","Activate and lower"), true );
CmdInactiveTitlebar3 = mouseCommand(config->readEntry("CommandInactiveTitlebar3","Operations menu"), true );
CmdTitlebarWheel = mouseWheelCommand(config->readEntry("CommandTitlebarWheel","Nothing"));
CmdTitlebarRevWheel = config->readBoolEntry("CommandTitlebarReverseWheel", false);
CmdWindow1 = mouseCommand(config->readEntry("CommandWindow1","Activate, raise and pass click"), false );
CmdWindow2 = mouseCommand(config->readEntry("CommandWindow2","Activate and pass click"), false );
CmdWindow3 = mouseCommand(config->readEntry("CommandWindow3","Activate and pass click"), false );
@ -167,6 +168,7 @@ unsigned long Options::updateSettings()
CmdAll2 = mouseCommand(config->readEntry("CommandAll2","Toggle raise and lower"), false );
CmdAll3 = mouseCommand(config->readEntry("CommandAll3","Resize"), false );
CmdAllWheel = mouseWheelCommand(config->readEntry("CommandAllWheel","Nothing"));
CmdAllRevWheel = config->readBoolEntry("CommandAllReverseWheel", false);
//translucency settings
config->setGroup( "Notification Messages" );
@ -193,7 +195,7 @@ unsigned long Options::updateSettings()
resetKompmgr = config->readBoolEntry("ResetKompmgr", false);
if (resetKompmgr)
config->writeEntry("ResetKompmgr",FALSE);
// window drop shadows
config->setGroup("Style");
shadow_colour = config->readColorEntry("ShadowColour", &TQt::black);
@ -213,7 +215,7 @@ unsigned long Options::updateSettings()
shadow_x_offset = config->readNumEntry("ShadowXOffset", 0);
shadow_y_offset = config->readNumEntry("ShadowYOffset", 10);
// Read button tooltip animation effect from kdeglobals
// Since we want to allow users to enable window decoration tooltips
// and not tdestyle tooltips and vise-versa, we don't read the
@ -227,7 +229,7 @@ unsigned long Options::updateSettings()
desktop_topmenu = kdesktopcfg.readBoolEntry( "ShowMenubar", false );
if( desktop_topmenu )
topmenus = true;
TQToolTip::setGloballyEnabled( d->show_tooltips );
return changed;
@ -386,8 +388,12 @@ bool Options::checkIgnoreFocusStealing( const Client* c )
return ignoreFocusStealingClasses.contains(TQString::fromLatin1(c->resourceClass()));
}
Options::MouseCommand Options::wheelToMouseCommand( MouseWheelCommand com, int delta )
Options::MouseCommand Options::wheelToMouseCommand( MouseWheelCommand com, int delta, bool revDir )
{
if (revDir)
{
delta = -delta;
}
switch( com )
{
case MouseWheelRaiseLower:

32
twin/options.h

@ -25,7 +25,7 @@ namespace KWinInternal
class Client;
class Options : public KDecorationOptions
class Options : public KDecorationOptions
{
public:
@ -124,7 +124,7 @@ class Options : public KDecorationOptions
*/
enum AltTabStyle { KDE, CDE };
AltTabStyle altTabStyle;
// whether to see Xinerama screens separately for focus (in Alt+Tab, when activating next client)
bool separateScreenFocus;
// whether active Xinerama screen is the one with mouse (or with the active window)
@ -138,7 +138,7 @@ class Options : public KDecorationOptions
bool xineramaMovementEnabled;
bool xineramaMaximizeEnabled;
bool xineramaFullscreenEnabled;
// number, or -1 = active screen (Workspace::activeScreen())
int xineramaPlacementScreen;
@ -149,13 +149,13 @@ class Options : public KDecorationOptions
MoveResizeMode resizeMode;
MoveResizeMode moveMode;
static MoveResizeMode stringToMoveResizeMode( const TQString& s );
static const char* moveResizeModeToString( MoveResizeMode mode );
Placement::Policy placement;
bool focusPolicyIsReasonable()
bool focusPolicyIsReasonable()
{
return focusPolicy == ClickToFocus || focusPolicy == FocusFollowsMouse;
}
@ -190,7 +190,7 @@ class Options : public KDecorationOptions
* Animation speed (0 .. 10 )
*/
int animateMinimizeSpeed;
bool showDesktopIsMinimizeAll;
/**
@ -205,12 +205,12 @@ class Options : public KDecorationOptions
* List of window classes to ignore PPosition size hint
*/
TQStringList ignorePositionClasses;
bool checkIgnoreFocusStealing( const Client* c );
WindowOperation operationTitlebarDblClick() { return OpTitlebarDblClick; }
enum MouseCommand
enum MouseCommand
{
MouseRaise, MouseLower, MouseOperationsMenu, MouseToggleRaiseAndLower,
MouseActivateAndRaise, MouseActivateAndLower, MouseActivate,
@ -225,7 +225,7 @@ class Options : public KDecorationOptions
MouseOpacityMore, MouseOpacityLess,
MouseNothing
};
enum MouseWheelCommand
{
MouseWheelRaiseLower, MouseWheelShadeUnshade, MouseWheelMaximizeRestore,
@ -236,11 +236,11 @@ class Options : public KDecorationOptions
MouseCommand operationTitlebarMouseWheel( int delta )
{
return wheelToMouseCommand( CmdTitlebarWheel, delta );
return wheelToMouseCommand( CmdTitlebarWheel, delta, CmdTitlebarRevWheel );
}
MouseCommand operationWindowMouseWheel( int delta )
{
return wheelToMouseCommand( CmdAllWheel, delta );
return wheelToMouseCommand( CmdAllWheel, delta, CmdAllRevWheel );
}
MouseCommand commandActiveTitlebar1() { return CmdActiveTitlebar1; }
@ -319,13 +319,13 @@ class Options : public KDecorationOptions
* @returns the activation delay for electric borders in milliseconds.
*/
int electricBorderDelay();
bool topMenuEnabled() const { return topmenus; }
bool desktopTopMenu() const { return desktop_topmenu; }
// timeout before non-responding application will be killed after attempt to close
int killPingTimeout;
// Whether to hide utility windows for inactive applications.
bool hideUtilityWindowsForInactive;
@ -362,6 +362,7 @@ class Options : public KDecorationOptions
MouseCommand CmdInactiveTitlebar2;
MouseCommand CmdInactiveTitlebar3;
MouseWheelCommand CmdTitlebarWheel;
bool CmdTitlebarRevWheel;
MouseCommand CmdWindow1;
MouseCommand CmdWindow2;
MouseCommand CmdWindow3;
@ -369,6 +370,7 @@ class Options : public KDecorationOptions
MouseCommand CmdAll2;
MouseCommand CmdAll3;
MouseWheelCommand CmdAllWheel;
bool CmdAllRevWheel;
uint CmdAllModKey;
int electric_borders;
@ -395,7 +397,7 @@ class Options : public KDecorationOptions
// List of window classes for which not to use focus stealing prevention
TQStringList ignoreFocusStealingClasses;
MouseCommand wheelToMouseCommand( MouseWheelCommand com, int delta );
MouseCommand wheelToMouseCommand( MouseWheelCommand com, int delta, bool revDir );
};
extern Options* options;

Loading…
Cancel
Save