aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-10-02 14:14:46 (GMT)
committerrathnor <rathnor>2003-10-02 14:14:46 (GMT)
commitbb1a7c92d8bb194e7e415f4348b7428f1b8ef436 (patch)
tree907d5e07ae3752486b0223e0aabd18c28b41f24f /src
parentae6e193aa706324981f0c60dfe6faa2152b07ac7 (diff)
downloadfluxbox-bb1a7c92d8bb194e7e415f4348b7428f1b8ef436.zip
fluxbox-bb1a7c92d8bb194e7e415f4348b7428f1b8ef436.tar.bz2
fix rendering of grips for parent relative textures
- make them children of the handle
Diffstat (limited to 'src')
-rw-r--r--src/FbWinFrame.cc44
-rw-r--r--src/FbWinFrame.hh4
2 files changed, 25 insertions, 23 deletions
diff --git a/src/FbWinFrame.cc b/src/FbWinFrame.cc
index 77e94ec..ce92813 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.55 2003/10/02 13:09:24 rathnor Exp $ 22// $Id: FbWinFrame.cc,v 1.56 2003/10/02 14:14:45 rathnor Exp $
23 23
24#include "FbWinFrame.hh" 24#include "FbWinFrame.hh"
25 25
@@ -57,18 +57,18 @@ FbWinFrame::FbWinFrame(FbWinFrameTheme &theme, FbTk::ImageControl &imgctrl,
57 ButtonPressMask | ButtonReleaseMask | 57 ButtonPressMask | ButtonReleaseMask |
58 ButtonMotionMask | ExposureMask | 58 ButtonMotionMask | ExposureMask |
59 EnterWindowMask | LeaveWindowMask), 59 EnterWindowMask | LeaveWindowMask),
60 m_grip_right(m_window, 0, 0, 10, 4, 60 m_handle(m_window, 0, 0, 100, 5,
61 ButtonPressMask | ButtonReleaseMask |
62 ButtonMotionMask | ExposureMask |
63 EnterWindowMask | LeaveWindowMask),
64 m_grip_right(m_handle, 0, 0, 10, 4,
61 ButtonPressMask | ButtonReleaseMask | 65 ButtonPressMask | ButtonReleaseMask |
62 ButtonMotionMask | ExposureMask | 66 ButtonMotionMask | ExposureMask |
63 EnterWindowMask | LeaveWindowMask), 67 EnterWindowMask | LeaveWindowMask),
64 m_grip_left(m_window, 0, 0, 10, 4, 68 m_grip_left(m_handle, 0, 0, 10, 4,
65 ButtonPressMask | ButtonReleaseMask | 69 ButtonPressMask | ButtonReleaseMask |
66 ButtonMotionMask | ExposureMask | 70 ButtonMotionMask | ExposureMask |
67 EnterWindowMask | LeaveWindowMask), 71 EnterWindowMask | LeaveWindowMask),
68 m_handle(m_window, 0, 0, 100, 5,
69 ButtonPressMask | ButtonReleaseMask |
70 ButtonMotionMask | ExposureMask |
71 EnterWindowMask | LeaveWindowMask),
72 m_clientarea(m_window, 0, 0, 100, 100, 72 m_clientarea(m_window, 0, 0, 100, 100,
73 ButtonPressMask | ButtonReleaseMask | 73 ButtonPressMask | ButtonReleaseMask |
74 ButtonMotionMask | ExposureMask | 74 ButtonMotionMask | ExposureMask |
@@ -432,9 +432,10 @@ void FbWinFrame::hideHandle() {
432void FbWinFrame::showHandle() { 432void FbWinFrame::showHandle() {
433 if (m_use_handle) 433 if (m_use_handle)
434 return; 434 return;
435
435 m_handle.show(); 436 m_handle.show();
436 m_grip_left.show(); 437 m_handle.showSubwindows(); // shows grips
437 m_grip_right.show(); 438
438 m_use_handle = true; 439 m_use_handle = true;
439 m_window.resize(m_window.width(), m_window.height() + m_handle.height() + 440 m_window.resize(m_window.width(), m_window.height() + m_handle.height() +
440 m_handle.borderWidth()); 441 m_handle.borderWidth());
@@ -640,17 +641,16 @@ void FbWinFrame::reconfigure() {
640 // align handle and grips 641 // align handle and grips
641 const int grip_height = m_handle.height(); 642 const int grip_height = m_handle.height();
642 const int grip_width = 20; //TODO 643 const int grip_width = 20; //TODO
643 644 const int handle_bw = static_cast<signed>(m_handle.borderWidth());
645
644 const int ypos = m_window.height() - grip_height - m_handle.borderWidth(); 646 const int ypos = m_window.height() - grip_height - m_handle.borderWidth();
647 m_handle.moveResize(-handle_bw, ypos,
648 m_window.width(), grip_height);
645 649
646 m_grip_left.moveResize(-m_handle.borderWidth(), ypos, 650 m_grip_left.moveResize(-handle_bw, -handle_bw,
647 grip_width, grip_height); 651 grip_width, grip_height);
648 652
649 m_handle.moveResize(grip_width, ypos, 653 m_grip_right.moveResize(m_handle.width() - grip_width - handle_bw, -handle_bw,
650 m_window.width() - grip_width*2 - m_handle.borderWidth()*2,
651 grip_height);
652
653 m_grip_right.moveResize(m_window.width() - grip_width - m_handle.borderWidth(), ypos,
654 grip_width, grip_height); 654 grip_width, grip_height);
655 } 655 }
656 } 656 }
@@ -881,6 +881,10 @@ void FbWinFrame::renderHandles() {
881 } 881 }
882 } 882 }
883 883
884 m_handle.setAlpha(theme().alpha());
885 m_handle.clear();
886 m_handle.updateTransparent();
887
884 m_grip_left.setAlpha(theme().alpha()); 888 m_grip_left.setAlpha(theme().alpha());
885 m_grip_left.clear(); 889 m_grip_left.clear();
886 m_grip_left.updateTransparent(); 890 m_grip_left.updateTransparent();
@@ -889,10 +893,6 @@ void FbWinFrame::renderHandles() {
889 m_grip_right.clear(); 893 m_grip_right.clear();
890 m_grip_right.updateTransparent(); 894 m_grip_right.updateTransparent();
891 895
892 m_handle.setAlpha(theme().alpha());
893 m_handle.clear();
894 m_handle.updateTransparent();
895
896} 896}
897 897
898void FbWinFrame::renderButtons() { 898void FbWinFrame::renderButtons() {
@@ -940,6 +940,8 @@ void FbWinFrame::init() {
940 940
941 m_current_label = 0; // no focused button at first 941 m_current_label = 0; // no focused button at first
942 942
943 m_handle.showSubwindows();
944
943 // clear pixmaps 945 // clear pixmaps
944 m_title_focused_pm = m_title_unfocused_pm = 0; 946 m_title_focused_pm = m_title_unfocused_pm = 0;
945 m_label_focused_pm = m_label_unfocused_pm = 0; 947 m_label_focused_pm = m_label_unfocused_pm = 0;
diff --git a/src/FbWinFrame.hh b/src/FbWinFrame.hh
index f57ce32..6d218d4 100644
--- a/src/FbWinFrame.hh
+++ b/src/FbWinFrame.hh
@@ -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.hh,v 1.21 2003/09/24 14:02:25 rathnor Exp $ 22// $Id: FbWinFrame.hh,v 1.22 2003/10/02 14:14:46 rathnor Exp $
23 23
24#ifndef FBWINFRAME_HH 24#ifndef FBWINFRAME_HH
25#define FBWINFRAME_HH 25#define FBWINFRAME_HH
@@ -224,9 +224,9 @@ private:
224 FbTk::FbWindow m_window; ///< base window that holds each decorations (ie titlebar, handles) 224 FbTk::FbWindow m_window; ///< base window that holds each decorations (ie titlebar, handles)
225 FbTk::FbWindow m_titlebar; ///< titlebar window 225 FbTk::FbWindow m_titlebar; ///< titlebar window
226 FbTk::FbWindow m_label; ///< holds title 226 FbTk::FbWindow m_label; ///< holds title
227 FbTk::FbWindow m_handle; ///< handle between grips
227 FbTk::FbWindow m_grip_right, ///< rightgrip 228 FbTk::FbWindow m_grip_right, ///< rightgrip
228 m_grip_left; ///< left grip 229 m_grip_left; ///< left grip
229 FbTk::FbWindow m_handle; ///< handle between grips
230 FbTk::FbWindow m_clientarea; ///< window that holds client window @see setClientWindow 230 FbTk::FbWindow m_clientarea; ///< window that holds client window @see setClientWindow
231 //@} 231 //@}
232 typedef std::vector<FbTk::Button *> ButtonList; 232 typedef std::vector<FbTk::Button *> ButtonList;