aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarkt <markt>2007-04-11 20:27:25 (GMT)
committermarkt <markt>2007-04-11 20:27:25 (GMT)
commite79258fe743c3ec0d0faf12541cdcec865fc7533 (patch)
treea639f1f48c1aaf877cc545c592b40e599b78546a
parent3f4870a7c8894cb21a30c24b8759da82a1fc4084 (diff)
downloadfluxbox-e79258fe743c3ec0d0faf12541cdcec865fc7533.zip
fluxbox-e79258fe743c3ec0d0faf12541cdcec865fc7533.tar.bz2
added session.screen<N>.maxIgnoreIncrement
-rw-r--r--ChangeLog6
-rw-r--r--src/IconButton.cc1
-rw-r--r--src/Screen.cc23
-rw-r--r--src/Screen.hh3
-rw-r--r--src/Window.cc13
5 files changed, 38 insertions, 8 deletions
diff --git a/ChangeLog b/ChangeLog
index 4ed32dc..0e805db 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,11 @@
1 (Format: Year/Month/Day) 1 (Format: Year/Month/Day)
2Changes for 1.1: 2Changes for 1.1:
3*07/04/11:
4 * Added resource session.screen<N>.maxIgnoreIncrement: <boolean>, to
5 disable size checking when maximizing a window (e.g. terminals) (Mark)
6 - Also added a new configuration submenu for maximize options, to be filled
7 at a later date
8 Screen.cc/hh Window.cc
3*07/04/08: 9*07/04/08:
4 * Added OnToolbar modifier to keys file (Mark) 10 * Added OnToolbar modifier to keys file (Mark)
5 Keys.cc/hh Toolbar.cc/hh Screen.cc/hh IconbarTool.cc fluxbox.cc 11 Keys.cc/hh Toolbar.cc/hh Screen.cc/hh IconbarTool.cc fluxbox.cc
diff --git a/src/IconButton.cc b/src/IconButton.cc
index 04fc391..34fe532 100644
--- a/src/IconButton.cc
+++ b/src/IconButton.cc
@@ -65,6 +65,7 @@ IconButton::IconButton(const FbTk::FbWindow &parent, IconbarTheme &theme,
65 65
66 FbTk::EventManager::instance()->add(*this, m_icon_window); 66 FbTk::EventManager::instance()->add(*this, m_icon_window);
67 67
68 reconfigTheme();
68 update(0); 69 update(0);
69} 70}
70 71
diff --git a/src/Screen.cc b/src/Screen.cc
index d433907..65ac45a 100644
--- a/src/Screen.cc
+++ b/src/Screen.cc
@@ -286,6 +286,7 @@ BScreen::ScreenResource::ScreenResource(FbTk::ResourceManager &rm,
286 image_dither(rm, false, scrname+".imageDither", altscrname+".ImageDither"), 286 image_dither(rm, false, scrname+".imageDither", altscrname+".ImageDither"),
287 opaque_move(rm, false, scrname + ".opaqueMove", altscrname+".OpaqueMove"), 287 opaque_move(rm, false, scrname + ".opaqueMove", altscrname+".OpaqueMove"),
288 full_max(rm, false, scrname+".fullMaximization", altscrname+".FullMaximization"), 288 full_max(rm, false, scrname+".fullMaximization", altscrname+".FullMaximization"),
289 max_ignore_inc(rm, true, scrname+".maxIgnoreIncrement", altscrname+".MaxIgnoreIncrement"),
289 workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"), 290 workspace_warping(rm, true, scrname+".workspacewarping", altscrname+".WorkspaceWarping"),
290 show_window_pos(rm, true, scrname+".showwindowposition", altscrname+".ShowWindowPosition"), 291 show_window_pos(rm, true, scrname+".showwindowposition", altscrname+".ShowWindowPosition"),
291 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"), 292 auto_raise(rm, true, scrname+".autoRaise", altscrname+".AutoRaise"),
@@ -1809,6 +1810,25 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) {
1809 1810
1810 // END focus menu 1811 // END focus menu
1811 1812
1813 // BEGIN maximize menu
1814
1815 FbTk::FbString maxmenu_label = _FB_XTEXT(Configmenu, MaxMenu,
1816 "Maximize Options", "heading for maximization options");
1817 FbTk::Menu *maxmenu = createMenu(maxmenu_label);
1818
1819 _BOOLITEM(*maxmenu, Configmenu, FullMax,
1820 "Full Maximization", "Maximise over slit, toolbar, etc",
1821 *resource.full_max, saverc_cmd);
1822 _BOOLITEM(*maxmenu, Configmenu, MaxIgnoreInc,
1823 "Ignore Resize Increment",
1824 "Maximizing Ignores Resize Increment (e.g. xterm)",
1825 *resource.max_ignore_inc, saverc_cmd);
1826
1827 maxmenu->updateMenu();
1828 menu.insert(maxmenu_label, maxmenu);
1829
1830 // END maximize menu
1831
1812 // BEGIN tab menu 1832 // BEGIN tab menu
1813 1833
1814 FbTk::FbString tabmenu_label = _FB_XTEXT(Configmenu, TabMenu, 1834 FbTk::FbString tabmenu_label = _FB_XTEXT(Configmenu, TabMenu,
@@ -1881,9 +1901,6 @@ void BScreen::setupConfigmenu(FbTk::Menu &menu) {
1881 "Opaque Window Moving", 1901 "Opaque Window Moving",
1882 "Window Moving with whole window visible (as opposed to outline moving)", 1902 "Window Moving with whole window visible (as opposed to outline moving)",
1883 *resource.opaque_move, saverc_cmd); 1903 *resource.opaque_move, saverc_cmd);
1884 _BOOLITEM(menu, Configmenu, FullMax,
1885 "Full Maximization", "Maximise over slit, toolbar, etc",
1886 *resource.full_max, saverc_cmd);
1887 try { 1904 try {
1888 _BOOLITEM(menu, Configmenu, FocusNew, 1905 _BOOLITEM(menu, Configmenu, FocusNew,
1889 "Focus New Windows", "Focus newly created windows", 1906 "Focus New Windows", "Focus newly created windows",
diff --git a/src/Screen.hh b/src/Screen.hh
index 0354b99..b459f3f 100644
--- a/src/Screen.hh
+++ b/src/Screen.hh
@@ -123,6 +123,7 @@ public:
123 bool clickRaises() const { return *resource.click_raises; } 123 bool clickRaises() const { return *resource.click_raises; }
124 bool doOpaqueMove() const { return *resource.opaque_move; } 124 bool doOpaqueMove() const { return *resource.opaque_move; }
125 bool doFullMax() const { return *resource.full_max; } 125 bool doFullMax() const { return *resource.full_max; }
126 bool getMaxIgnoreIncrement() const { return *resource.max_ignore_inc; }
126 bool doShowWindowPos() const { return *resource.show_window_pos; } 127 bool doShowWindowPos() const { return *resource.show_window_pos; }
127 bool decorateTransient() const { return *resource.decorate_transient; } 128 bool decorateTransient() const { return *resource.decorate_transient; }
128 const std::string &defaultDeco() const { return *resource.default_deco; } 129 const std::string &defaultDeco() const { return *resource.default_deco; }
@@ -559,7 +560,7 @@ private:
559 const std::string &altscrname); 560 const std::string &altscrname);
560 561
561 FbTk::Resource<bool> image_dither, opaque_move, full_max, 562 FbTk::Resource<bool> image_dither, opaque_move, full_max,
562 workspace_warping, show_window_pos, 563 max_ignore_inc, workspace_warping, show_window_pos,
563 auto_raise, click_raises, decorate_transient; 564 auto_raise, click_raises, decorate_transient;
564 FbTk::Resource<std::string> default_deco; 565 FbTk::Resource<std::string> default_deco;
565 FbTk::Resource<std::string> rootcommand; 566 FbTk::Resource<std::string> rootcommand;
diff --git a/src/Window.cc b/src/Window.cc
index 09b048b..d0f28ce 100644
--- a/src/Window.cc
+++ b/src/Window.cc
@@ -1716,10 +1716,15 @@ void FluxboxWindow::maximize(int type) {
1716 m_last_resize_w = new_w; 1716 m_last_resize_w = new_w;
1717 m_last_resize_h = new_h; 1717 m_last_resize_h = new_h;
1718 1718
1719 ResizeDirection old_resize_corner = m_resize_corner; 1719 // frankly, that xterm bug was pretty obscure, and it's really annoying not
1720 m_resize_corner = NOCORNER; 1720 // being able to maximize my terminals, so we make an option
1721 fixsize(0, 0, true); 1721 // but we do fix size hints when restoring the window to normal size
1722 m_resize_corner = old_resize_corner; 1722 if (!screen().getMaxIgnoreIncrement() || !maximized) {
1723 ResizeDirection old_resize_corner = m_resize_corner;
1724 m_resize_corner = NOCORNER;
1725 fixsize(0, 0, (maximized ? true : false));
1726 m_resize_corner = old_resize_corner;
1727 }
1723 1728
1724 moveResize(m_last_resize_x, m_last_resize_y, m_last_resize_w, m_last_resize_h); 1729 moveResize(m_last_resize_x, m_last_resize_y, m_last_resize_w, m_last_resize_h);
1725 1730