aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/CurrentWindowCmd.cc2
-rw-r--r--src/FocusControl.cc10
-rw-r--r--src/FocusControl.hh3
-rw-r--r--src/Window.cc8
-rw-r--r--src/Window.hh4
5 files changed, 6 insertions, 21 deletions
diff --git a/src/CurrentWindowCmd.cc b/src/CurrentWindowCmd.cc
index e4de9a4..a975bdd 100644
--- a/src/CurrentWindowCmd.cc
+++ b/src/CurrentWindowCmd.cc
@@ -93,7 +93,7 @@ void GoToTabCmd::real_execute() {
93 93
94 while (--num > 0) ++it; 94 while (--num > 0) ++it;
95 95
96 fbwindow().setCurrentClient(**it, true); 96 (*it)->focus();
97} 97}
98 98
99void WindowHelperCmd::execute() { 99void WindowHelperCmd::execute() {
diff --git a/src/FocusControl.cc b/src/FocusControl.cc
index e0bb886..c5441dd 100644
--- a/src/FocusControl.cc
+++ b/src/FocusControl.cc
@@ -50,9 +50,6 @@ FocusControl::FocusControl(BScreen &screen):
50 CLICKTABFOCUS, 50 CLICKTABFOCUS,
51 screen.name()+".tabFocusModel", 51 screen.name()+".tabFocusModel",
52 screen.altName()+".TabFocusModel"), 52 screen.altName()+".TabFocusModel"),
53 m_focus_last(screen.resourceManager(), true,
54 screen.name()+".focusLastWindow",
55 screen.altName()+".FocusLastWindow"),
56 m_focus_new(screen.resourceManager(), true, 53 m_focus_new(screen.resourceManager(), true,
57 screen.name()+".focusNewWindows", 54 screen.name()+".focusNewWindows",
58 screen.altName()+".FocusNewWindows"), 55 screen.altName()+".FocusNewWindows"),
@@ -398,15 +395,12 @@ void FocusControl::revertFocus(BScreen &screen) {
398 395
399 if (screen.focusControl().isCycling()) 396 if (screen.focusControl().isCycling())
400 return; 397 return;
401 // Relevant resources: 398
402 // resource.focus_last = whether we focus last focused when changing workspace
403 // BScreen::FocusModel = sloppy, click, whatever
404 WinClient *next_focus = 399 WinClient *next_focus =
405 screen.focusControl().lastFocusedWindow(screen.currentWorkspaceID()); 400 screen.focusControl().lastFocusedWindow(screen.currentWorkspaceID());
406 401
407 // if setting focus fails, or isn't possible, fallback correctly 402 // if setting focus fails, or isn't possible, fallback correctly
408 if (!(next_focus && next_focus->fbwindow() && 403 if (!(next_focus && next_focus->focus())) {
409 next_focus->fbwindow()->setCurrentClient(*next_focus, true))) {
410 setFocusedWindow(0); // so we don't get dangling m_focused_window pointer 404 setFocusedWindow(0); // so we don't get dangling m_focused_window pointer
411 switch (screen.focusControl().focusModel()) { 405 switch (screen.focusControl().focusModel()) {
412 case FocusControl::MOUSEFOCUS: 406 case FocusControl::MOUSEFOCUS:
diff --git a/src/FocusControl.hh b/src/FocusControl.hh
index df7922b..708b960 100644
--- a/src/FocusControl.hh
+++ b/src/FocusControl.hh
@@ -89,7 +89,6 @@ public:
89 89
90 FocusModel focusModel() const { return *m_focus_model; } 90 FocusModel focusModel() const { return *m_focus_model; }
91 TabFocusModel tabFocusModel() const { return *m_tab_focus_model; } 91 TabFocusModel tabFocusModel() const { return *m_tab_focus_model; }
92 bool focusLast() const { return *m_focus_last; }
93 bool focusNew() const { return *m_focus_new; } 92 bool focusNew() const { return *m_focus_new; }
94 93
95 WinClient *lastFocusedWindow(int workspace); 94 WinClient *lastFocusedWindow(int workspace);
@@ -114,7 +113,7 @@ private:
114 113
115 FbTk::Resource<FocusModel> m_focus_model; 114 FbTk::Resource<FocusModel> m_focus_model;
116 FbTk::Resource<TabFocusModel> m_tab_focus_model; 115 FbTk::Resource<TabFocusModel> m_tab_focus_model;
117 FbTk::Resource<bool> m_focus_last, m_focus_new; 116 FbTk::Resource<bool> m_focus_new;
118 117
119 // This list keeps the order of window focusing for this screen 118 // This list keeps the order of window focusing for this screen
120 // Screen global so it works for sticky windows too. 119 // Screen global so it works for sticky windows too.
diff --git a/src/Window.cc b/src/Window.cc
index fe4cf4a..ff005c3 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -284,8 +284,7 @@ public:
284 explicit SetClientCmd(WinClient &client):m_client(client) { 284 explicit SetClientCmd(WinClient &client):m_client(client) {
285 } 285 }
286 void execute() { 286 void execute() {
287 if (m_client.fbwindow() != 0) 287 m_client.focus();
288 m_client.fbwindow()->setCurrentClient(m_client);
289 } 288 }
290private: 289private:
291 WinClient &m_client; 290 WinClient &m_client;
@@ -440,8 +439,6 @@ void FluxboxWindow::init() {
440 439
441 frame().resize(m_client->width(), m_client->height()); 440 frame().resize(m_client->width(), m_client->height());
442 441
443 m_last_focus_time.tv_sec = m_last_focus_time.tv_usec = 0;
444
445 m_blackbox_attrib.workspace = m_workspace_number = m_screen.currentWorkspaceID(); 442 m_blackbox_attrib.workspace = m_workspace_number = m_screen.currentWorkspaceID();
446 443
447 m_blackbox_attrib.flags = m_blackbox_attrib.attrib = m_blackbox_attrib.stack = 0; 444 m_blackbox_attrib.flags = m_blackbox_attrib.attrib = m_blackbox_attrib.stack = 0;
@@ -1453,7 +1450,7 @@ bool FluxboxWindow::setInputFocus() {
1453 cerr<<__FUNCTION__<<": transient 0x"<<(*it)<<endl; 1450 cerr<<__FUNCTION__<<": transient 0x"<<(*it)<<endl;
1454#endif // DEBUG 1451#endif // DEBUG
1455 if ((*it)->isModal()) 1452 if ((*it)->isModal())
1456 return (*it)->fbwindow()->setCurrentClient(**it, true); 1453 return (*it)->focus();
1457 } 1454 }
1458 } 1455 }
1459 1456
@@ -2129,7 +2126,6 @@ void FluxboxWindow::setFocusFlag(bool focus) {
2129#endif // DEBUG 2126#endif // DEBUG
2130 // Record focus timestamp for window cycling enhancements 2127 // Record focus timestamp for window cycling enhancements
2131 if (focused) { 2128 if (focused) {
2132 gettimeofday(&m_last_focus_time, 0);
2133 screen().focusControl().setScreenFocusedWindow(*m_client); 2129 screen().focusControl().setScreenFocusedWindow(*m_client);
2134 } 2130 }
2135 2131
diff --git a/src/Window.hh b/src/Window.hh
index 429747f..50f756d 100644
--- a/src/Window.hh
+++ b/src/Window.hh
@@ -426,8 +426,6 @@ public:
426 426
427 void reconfigTheme(); 427 void reconfigTheme();
428 428
429 const timeval &lastFocusTime() const { return m_last_focus_time;}
430
431 //@} 429 //@}
432 430
433 class WinSubject: public FbTk::Subject { 431 class WinSubject: public FbTk::Subject {
@@ -521,8 +519,6 @@ private:
521 Display *display; /// display connection 519 Display *display; /// display connection
522 BlackboxAttributes m_blackbox_attrib; 520 BlackboxAttributes m_blackbox_attrib;
523 521
524 timeval m_last_focus_time;
525
526 int m_button_grab_x, m_button_grab_y; // handles last button press event for move 522 int m_button_grab_x, m_button_grab_y; // handles last button press event for move
527 int m_last_resize_x, m_last_resize_y; // handles last button press event for resize 523 int m_last_resize_x, m_last_resize_y; // handles last button press event for resize
528 int m_last_move_x, m_last_move_y; // handles last pos for non opaque moving 524 int m_last_move_x, m_last_move_y; // handles last pos for non opaque moving