diff options
Diffstat (limited to 'src/FbWinFrame.cc')
-rw-r--r-- | src/FbWinFrame.cc | 37 |
1 files changed, 25 insertions, 12 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc index 045ca03..3dd0f1b 100644 --- a/src/FbWinFrame.cc +++ b/src/FbWinFrame.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: FbWinFrame.cc,v 1.46 2003/09/11 13:17:14 rathnor Exp $ | 22 | // $Id: FbWinFrame.cc,v 1.47 2003/09/11 13:35:37 rathnor Exp $ |
23 | 23 | ||
24 | #include "FbWinFrame.hh" | 24 | #include "FbWinFrame.hh" |
25 | 25 | ||
@@ -38,6 +38,8 @@ | |||
38 | 38 | ||
39 | #include <algorithm> | 39 | #include <algorithm> |
40 | #include <iostream> | 40 | #include <iostream> |
41 | #include <X11/X.h> | ||
42 | |||
41 | using namespace std; | 43 | using namespace std; |
42 | 44 | ||
43 | FbWinFrame::FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, | 45 | FbWinFrame::FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl, |
@@ -1140,18 +1142,29 @@ void FbWinFrame::gravityTranslate(int &x, int &y, int win_gravity, bool move_fra | |||
1140 | 1142 | ||
1141 | // Start with X offset | 1143 | // Start with X offset |
1142 | switch (win_gravity) { | 1144 | switch (win_gravity) { |
1143 | case NorthWest: | 1145 | case NorthWestGravity: |
1144 | case North: | 1146 | case NorthGravity: |
1145 | case NorthEast: | 1147 | case NorthEastGravity: |
1146 | // no offset, since the top point is still the same | 1148 | // no offset, since the top point is still the same |
1147 | break; | 1149 | break; |
1148 | case SouthWest: | 1150 | case SouthWestGravity: |
1149 | case South: | 1151 | case SouthGravity: |
1150 | case SouthEast: | 1152 | case SouthEastGravity: |
1151 | case Static: | 1153 | // window shifted down by height of titlebar, and the handle |
1152 | case Center: | 1154 | // since that's necessary to get the bottom of the frame |
1153 | // window shifted down by height of titlebar | 1155 | // all the way up |
1154 | x_offset -= m_titlebar.height() + m_titlebar.borderWidth(); | 1156 | x_offset = -(m_titlebar.height() + m_titlebar.borderWidth() |
1157 | + m_handle.height() + m_handle.borderWidth()); | ||
1158 | break; | ||
1159 | case WestGravity: | ||
1160 | case EastGravity: | ||
1161 | case CenterGravity: | ||
1162 | // these centered ones are a little more interesting | ||
1163 | x_offset = -(m_titlebar.height() + m_titlebar.borderWidth() | ||
1164 | + m_handle.height() + m_handle.borderWidth()) / 2; | ||
1165 | break; | ||
1166 | case StaticGravity: | ||
1167 | x_offset = -(m_titlebar.height() + m_titlebar.borderWidth()); | ||
1155 | break; | 1168 | break; |
1156 | } | 1169 | } |
1157 | 1170 | ||
@@ -1166,6 +1179,6 @@ void FbWinFrame::gravityTranslate(int &x, int &y, int win_gravity, bool move_fra | |||
1166 | y += y_offset; | 1179 | y += y_offset; |
1167 | 1180 | ||
1168 | if (move_frame && (x_offset != 0 || y_offset != 0)) { | 1181 | if (move_frame && (x_offset != 0 || y_offset != 0)) { |
1169 | move(x() + x_offset, y() + y_offset); | 1182 | move(m_window.x() + x_offset, m_window.y() + y_offset); |
1170 | } | 1183 | } |
1171 | } | 1184 | } |