aboutsummaryrefslogtreecommitdiff
path: root/x11-wm/fluxbox/files/patch-aaa01
diff options
context:
space:
mode:
Diffstat (limited to 'x11-wm/fluxbox/files/patch-aaa01')
-rw-r--r--x11-wm/fluxbox/files/patch-aaa01160
1 files changed, 160 insertions, 0 deletions
diff --git a/x11-wm/fluxbox/files/patch-aaa01 b/x11-wm/fluxbox/files/patch-aaa01
new file mode 100644
index 000000000000..a2e5d1bac851
--- /dev/null
+++ b/x11-wm/fluxbox/files/patch-aaa01
@@ -0,0 +1,160 @@
+From: Henrik Kinnunen <fluxgen@fluxbox.org>
+Date: Sun, 14 Sep 2008 18:06:28 +0000 (+0200)
+Subject: some minor code cleaning.
+X-Git-Tag: Release-1_1_1~4
+X-Git-Url: http://git.fluxbox.org/?p=fluxbox.git;a=commitdiff_plain;h=9f519ec0fcb7cd0dec61a4c31d246800f9a73cb3
+
+some minor code cleaning.
+---
+
+diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
+index 5b91218..fc35ae1 100644
+--- a/src/FbWinFrame.cc
++++ src/FbWinFrame.cc
+@@ -1717,3 +1717,10 @@ void FbWinFrame::displaySize(unsigned int width, unsigned int height) const {
+ width, height - titlebarHeight() - handleHeight());
+ m_screen.showGeometry(i, j);
+ }
++
++bool FbWinFrame::insideTitlebar(Window win) const {
++ return
++ gripLeft().window() != win &&
++ gripRight().window() != win &&
++ window().window() != win;
++}
+diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh
+index fcbe11e..ff9c19e 100644
+--- a/src/FbWinFrame.hh
++++ src/FbWinFrame.hh
+@@ -236,6 +236,9 @@ public:
+
+ const FbTk::Subject &frameExtentSig() const { return m_frame_extent_sig; }
+ FbTk::Subject &frameExtentSig() { return m_frame_extent_sig; }
++ /// @returns true if the window is inside titlebar,
++ /// assuming window is an event window that was generated for this frame.
++ bool insideTitlebar(Window win) const;
+
+ //@}
+
+diff --git a/src/RectangleUtil.hh b/src/RectangleUtil.hh
+new file mode 100644
+index 0000000..88c3a33
+--- /dev/null
++++ src/RectangleUtil.hh
+@@ -0,0 +1,30 @@
++#ifndef RECTANGLEUTIL_HH
++#define RECTANGLEUTIL_HH
++
++namespace RectangleUtil {
++
++
++/*
++ * Determines if a point is inside a rectangle-like objects border.
++ * @param rect A rectangle-like object that has accessors for x, y, width, and
++ * height.
++ * @param x
++ * @param y
++ * @param border_width The size of the border.
++ * @returns true if point is inside the rectangle-like object.
++*/
++template <typename RectangleLike>
++bool insideBorder(const RectangleLike& rect,
++ int x, int y,
++ int border_width) {
++ return
++ x >= rect.x() + border_width &&
++ x < rect.x() + (int)rect.width() + border_width &&
++ y >= rect.y() + border_width &&
++ y < rect.y() + (int)rect.height() + border_width;
++}
++
++} // namespace RectangleUtil
++
++
++#endif // RECTANGLEUTIL_HH
+diff --git a/src/Window.cc b/src/Window.cc
+index 16334c6..5d50fcf 100644
+--- a/src/Window.cc
++++ src/Window.cc
+@@ -41,6 +41,7 @@
+ #include "FocusControl.hh"
+ #include "IconButton.hh"
+ #include "ScreenPlacement.hh"
++#include "RectangleUtil.hh"
+
+ #include "FbTk/StringUtil.hh"
+ #include "FbTk/Compose.hh"
+@@ -2362,10 +2363,9 @@ void FluxboxWindow::buttonPressEvent(XButtonEvent &be) {
+ m_last_button_x = be.x_root;
+ m_last_button_y = be.y_root;
+
+- bool onTitlebar = frame().gripLeft().window() != be.window &&
+- frame().gripRight().window() != be.window &&
+- frame().handle().window() != be.window &&
+- frame().window() != be.window;
++ bool onTitlebar =
++ frame().insideTitlebar( be.window ) &&
++ frame().handle().window() != be.window;
+
+ if (onTitlebar && be.button == 1)
+ raise();
+@@ -2422,41 +2422,31 @@ void FluxboxWindow::motionNotifyEvent(XMotionEvent &me) {
+ me.window = frame().window().window();
+ }
+
+- bool inside_titlebar = frame().gripLeft().window() != me.window &&
+- frame().gripRight().window() != me.window &&
+- frame().window() != me.window;
++ bool inside_titlebar = frame().insideTitlebar( me.window );
+
+ if (Fluxbox::instance()->getIgnoreBorder() && m_attaching_tab == 0
+ && !(isMoving() || isResizing())) {
++
++ using RectangleUtil::insideBorder;
++
+ int borderw = frame().window().borderWidth();
+ //!! TODO(tabs): the below test ought to be in FbWinFrame
+ // if mouse is currently on the window border, ignore it
+- if ((me.x_root < (frame().x() + borderw) ||
+- me.y_root < (frame().y() + borderw) ||
+- me.x_root >= (frame().x() + (int)frame().width() + borderw) ||
+- me.y_root >= (frame().y() + (int)frame().height() + borderw))
+- && (!frame().externalTabMode() ||
+- (me.x_root < (frame().tabcontainer().x() + borderw) ||
+- me.y_root < (frame().tabcontainer().y() + borderw) ||
+- me.x_root >= (frame().tabcontainer().x() +
+- (int)frame().tabcontainer().width() + borderw) ||
+- me.y_root >= (frame().tabcontainer().y() +
+- (int)frame().tabcontainer().height() + borderw)))
+- // or if mouse was on border when it was last clicked
+- || (m_last_button_x < (frame().x() + borderw) ||
+- m_last_button_y < (frame().y() + borderw) ||
+- m_last_button_x >= (frame().x() +
+- (int)frame().width() + borderw) ||
+- m_last_button_y >= (frame().y() +
+- (int)frame().height() + borderw))
+- && (!frame().externalTabMode() ||
+- (m_last_button_x < (frame().tabcontainer().x() + borderw) ||
+- m_last_button_y < (frame().tabcontainer().y() + borderw) ||
+- m_last_button_x >= (frame().tabcontainer().x() +
+- (int)frame().tabcontainer().width() + borderw) ||
+- m_last_button_y >= (frame().tabcontainer().y() +
+- (int)frame().tabcontainer().height() + borderw))))
++ if ( ! insideBorder(frame(),
++ me.x_root, me.y_root, borderw) &&
++ ( !frame().externalTabMode() ||
++ ! insideBorder(frame().tabcontainer(),
++ me.x_root, me.y_root, borderw) )
++
++ || // or if mouse was on border when it was last clicked
++
++ ! insideBorder(frame(),
++ m_last_button_x, m_last_button_y, borderw) &&
++ ( ! frame().externalTabMode() ||
++ ! insideBorder(frame().tabcontainer(),
++ m_last_button_x, m_last_button_y, borderw ) ) ) {
+ return;
++ }
+ }
+
+ if (moving || ((me.state & Button1Mask) && functions.move &&