diff options
author | Alexander Sulfrian <alexander@sulfrian.net> | 2012-03-22 22:52:59 +0100 |
---|---|---|
committer | Alexander Sulfrian <alexander@sulfrian.net> | 2013-01-13 22:40:51 +0100 |
commit | fb7542a5e7d390a20eefc946cc5054dc79d74180 (patch) | |
tree | 164c6640dfbb0be0b260cd6fb709477e6d753f58 /src/menu/drawable_control.cpp | |
parent | b44ac46e4e54f228fd9c25c042da2efd2ab45b64 (diff) | |
download | usdx-fb7542a5e7d390a20eefc946cc5054dc79d74180.tar.gz usdx-fb7542a5e7d390a20eefc946cc5054dc79d74180.tar.xz usdx-fb7542a5e7d390a20eefc946cc5054dc79d74180.zip |
menu/container: clipping requires window coordinates
glScissor only work with window coordinates. to calculate that a
control has to know it position on the window and therefor the parent
container have to track the position in the window
Diffstat (limited to 'src/menu/drawable_control.cpp')
-rw-r--r-- | src/menu/drawable_control.cpp | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/src/menu/drawable_control.cpp b/src/menu/drawable_control.cpp index 00b6fa78..10da2bfc 100644 --- a/src/menu/drawable_control.cpp +++ b/src/menu/drawable_control.cpp @@ -81,8 +81,11 @@ namespace usdx clipping_lock.unlock(); boost::mutex::scoped_lock lock(size_mutex); - ClippingHelper clipping(Rectangle<int>(position, size)); + Point<int> offset(0, 0); + if (parent) + offset = parent->get_window_coords(); + ClippingHelper clipping(Rectangle<int>(offset + position, size)); Drawable::repaint(); } else { |