diff options
Diffstat (limited to 'src/Screen.cc')
-rw-r--r-- | src/Screen.cc | 24 |
1 files changed, 8 insertions, 16 deletions
diff --git a/src/Screen.cc b/src/Screen.cc index 7f44e42..915c055 100644 --- a/src/Screen.cc +++ b/src/Screen.cc | |||
@@ -283,6 +283,8 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager &rm, | |||
283 | opaque_move(rm, false, scrname + ".opaqueMove", altscrname+".OpaqueMove"), | 283 | opaque_move(rm, false, scrname + ".opaqueMove", altscrname+".OpaqueMove"), |
284 | full_max(rm, false, scrname+".fullMaximization", altscrname+".FullMaximization"), | 284 | full_max(rm, false, scrname+".fullMaximization", altscrname+".FullMaximization"), |
285 | max_ignore_inc(rm, true, scrname+".maxIgnoreIncrement", altscrname+".MaxIgnoreIncrement"), | 285 | max_ignore_inc(rm, true, scrname+".maxIgnoreIncrement", altscrname+".MaxIgnoreIncrement"), |
286 | max_disable_move(rm, false, scrname+".maxDisableMove", altscrname+".MaxDisableMove"), | ||
287 | max_disable_resize(rm, false, scrname+".maxDisableResize", altscrname+".MaxDisableResize"), | ||
286 | workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"), | 288 | workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"), |
287 | show_window_pos(rm, true, scrname+".showwindowposition", altscrname+".ShowWindowPosition"), | 289 | show_window_pos(rm, true, scrname+".showwindowposition", altscrname+".ShowWindowPosition"), |
288 | auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), | 290 | auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), |
@@ -1350,17 +1352,11 @@ void BScreen::updateNetizenWindowFocus() { | |||
1350 | 1352 | ||
1351 | 1353 | ||
1352 | void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) { | 1354 | void BScreen::updateNetizenWindowAdd(Window w, unsigned long p) { |
1353 | |||
1354 | // update the list of clients | ||
1355 | m_clientlist_sig.notify(); | ||
1356 | |||
1357 | // and then send the signal to listeners | ||
1358 | Netizens::iterator it = m_netizen_list.begin(); | 1355 | Netizens::iterator it = m_netizen_list.begin(); |
1359 | Netizens::iterator it_end = m_netizen_list.end(); | 1356 | Netizens::iterator it_end = m_netizen_list.end(); |
1360 | for (; it != it_end; ++it) { | 1357 | for (; it != it_end; ++it) { |
1361 | (*it)->sendWindowAdd(w, p); | 1358 | (*it)->sendWindowAdd(w, p); |
1362 | } | 1359 | } |
1363 | |||
1364 | } | 1360 | } |
1365 | 1361 | ||
1366 | 1362 | ||
@@ -1368,8 +1364,6 @@ void BScreen::updateNetizenWindowDel(Window w) { | |||
1368 | for_each(m_netizen_list.begin(), | 1364 | for_each(m_netizen_list.begin(), |
1369 | m_netizen_list.end(), | 1365 | m_netizen_list.end(), |
1370 | bind2nd(mem_fun(&Netizen::sendWindowDel), w)); | 1366 | bind2nd(mem_fun(&Netizen::sendWindowDel), w)); |
1371 | |||
1372 | m_clientlist_sig.notify(); | ||
1373 | } | 1367 | } |
1374 | 1368 | ||
1375 | 1369 | ||
@@ -1638,20 +1632,12 @@ void BScreen::reassociateWindow(FluxboxWindow *w, unsigned int wkspc_id, | |||
1638 | if (w->isIconic()) { | 1632 | if (w->isIconic()) { |
1639 | removeIcon(w); | 1633 | removeIcon(w); |
1640 | getWorkspace(wkspc_id)->addWindow(*w); | 1634 | getWorkspace(wkspc_id)->addWindow(*w); |
1641 | // client list need to notify now even though | ||
1642 | // we didn't remove/add any window, | ||
1643 | // so listeners that uses the client list to | ||
1644 | // show whats on current/other workspace | ||
1645 | // gets updated | ||
1646 | m_clientlist_sig.notify(); | ||
1647 | } else if (ignore_sticky || ! w->isStuck()) { | 1635 | } else if (ignore_sticky || ! w->isStuck()) { |
1648 | // fresh windows have workspaceNumber == -1, which leads to | 1636 | // fresh windows have workspaceNumber == -1, which leads to |
1649 | // an invalid workspace (unsigned int) | 1637 | // an invalid workspace (unsigned int) |
1650 | if (getWorkspace(w->workspaceNumber())) | 1638 | if (getWorkspace(w->workspaceNumber())) |
1651 | getWorkspace(w->workspaceNumber())->removeWindow(w, true); | 1639 | getWorkspace(w->workspaceNumber())->removeWindow(w, true); |
1652 | getWorkspace(wkspc_id)->addWindow(*w); | 1640 | getWorkspace(wkspc_id)->addWindow(*w); |
1653 | // see comment above | ||
1654 | m_clientlist_sig.notify(); | ||
1655 | } | 1641 | } |
1656 | } | 1642 | } |
1657 | 1643 | ||
@@ -1808,6 +1794,12 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) { | |||
1808 | "Ignore Resize Increment", | 1794 | "Ignore Resize Increment", |
1809 | "Maximizing Ignores Resize Increment (e.g. xterm)", | 1795 | "Maximizing Ignores Resize Increment (e.g. xterm)", |
1810 | *resource.max_ignore_inc, saverc_cmd); | 1796 | *resource.max_ignore_inc, saverc_cmd); |
1797 | _BOOLITEM(*maxmenu, Configmenu, MaxDisableMove, | ||
1798 | "Disable Moving", "Don't Allow Moving While Maximized", | ||
1799 | *resource.max_disable_move, saverc_cmd); | ||
1800 | _BOOLITEM(*maxmenu, Configmenu, MaxDisableResize, | ||
1801 | "Disable Resizing", "Don't Allow Resizing While Maximized", | ||
1802 | *resource.max_disable_resize, saverc_cmd); | ||
1811 | 1803 | ||
1812 | maxmenu->updateMenu(); | 1804 | maxmenu->updateMenu(); |
1813 | menu.insert(maxmenu_label, maxmenu); | 1805 | menu.insert(maxmenu_label, maxmenu); |