summaryrefslogtreecommitdiff
path: root/src/Screen.cc
diff options
context:
space:
mode:
authorDana Jansens <danakj@orodu.net>2002-06-29 23:50:04 +0000
committerDana Jansens <danakj@orodu.net>2002-06-29 23:50:04 +0000
commit351a06655bdd7d440780b5bc5b255081c888044b (patch)
treecda6be7de0972b942cfbee9510c49180c6f055d2 /src/Screen.cc
parentb0d81f77aa57a33f6c9e6428ffe89f7cc02258ed (diff)
Configureable button mappings!
Diffstat (limited to 'src/Screen.cc')
-rw-r--r--src/Screen.cc34
1 files changed, 30 insertions, 4 deletions
diff --git a/src/Screen.cc b/src/Screen.cc
index 73dfeaf1..88cba673 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -88,6 +88,7 @@ using std::string;
#include "Workspace.hh"
#include "Workspacemenu.hh"
#include "XAtom.hh"
+#include "Input.hh"
#ifndef FONT_ELEMENT_SIZE
#define FONT_ELEMENT_SIZE 50
@@ -313,6 +314,7 @@ BScreen::BScreen(Blackbox *bb, unsigned int scrn) : ScreenInfo(bb, scrn) {
// call this again just in case a window we found updates the Strut list
updateAvailableArea();
+ updateFocusModel();
}
@@ -2170,9 +2172,10 @@ void BScreen::toggleFocusModel(FocusModel model) {
if (model == SloppyFocus) {
saveSloppyFocus(True);
} else {
+ // we're cheating here to save writing the config file 3 times
+ resource.auto_raise = False;
+ resource.click_raise = False;
saveSloppyFocus(False);
- saveAutoRaise(False);
- saveClickRaise(False);
}
updateFocusModel();
@@ -2181,8 +2184,31 @@ void BScreen::toggleFocusModel(FocusModel model) {
void BScreen::updateFocusModel()
{
- std::for_each(workspacesList.begin(), workspacesList.end(),
- std::mem_fun(&Workspace::updateFocusModel));
+ std::for_each(iconList.begin(), iconList.end(),
+ std::mem_fun(&BlackboxWindow::ungrabButtons));
+ std::for_each(windowList.begin(), windowList.end(),
+ std::mem_fun(&BlackboxWindow::ungrabButtons));
+
+ if (! resource.sloppy_focus) {
+ blackbox->getInput()->add(Button1, 0, BInput::WindowClientPress,
+ BInput::Raise);
+ blackbox->getInput()->add(Button1, 0, BInput::WindowClientPress,
+ BInput::Focus);
+ } else {
+ if (resource.click_raise)
+ blackbox->getInput()->add(Button1, 0, BInput::WindowClientPress,
+ BInput::Raise);
+ else
+ blackbox->getInput()->remove(Button1, 0, BInput::WindowClientPress,
+ BInput::Raise);
+ blackbox->getInput()->remove(Button1, 0, BInput::WindowClientPress,
+ BInput::Focus);
+ }
+
+ std::for_each(iconList.begin(), iconList.end(),
+ std::mem_fun(&BlackboxWindow::grabButtons));
+ std::for_each(windowList.begin(), windowList.end(),
+ std::mem_fun(&BlackboxWindow::grabButtons));
}