diff options
author | fluxgen <fluxgen> | 2003-09-14 10:13:06 (GMT) |
---|---|---|
committer | fluxgen <fluxgen> | 2003-09-14 10:13:06 (GMT) |
commit | 02248805872c35ec99fcd75e064ee4a53f9c7be4 (patch) | |
tree | 0121a8a24e89422c5e8df069a62b17a7ca992f11 | |
parent | c8bcddf58b406b67c268aed38d7779816da0424b (diff) | |
download | fluxbox_lack-02248805872c35ec99fcd75e064ee4a53f9c7be4.zip fluxbox_lack-02248805872c35ec99fcd75e064ee4a53f9c7be4.tar.bz2 |
less flicker
-rw-r--r-- | src/Window.cc | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/src/Window.cc b/src/Window.cc index 00f2e42..b33bcbe 100644 --- a/src/Window.cc +++ b/src/Window.cc | |||
@@ -22,7 +22,7 @@ | |||
22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 22 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
23 | // DEALINGS IN THE SOFTWARE. | 23 | // DEALINGS IN THE SOFTWARE. |
24 | 24 | ||
25 | // $Id: Window.cc,v 1.227 2003/09/12 23:34:13 fluxgen Exp $ | 25 | // $Id: Window.cc,v 1.228 2003/09/14 10:13:06 fluxgen Exp $ |
26 | 26 | ||
27 | #include "Window.hh" | 27 | #include "Window.hh" |
28 | 28 | ||
@@ -968,10 +968,14 @@ void FluxboxWindow::reconfigure() { | |||
968 | 968 | ||
969 | /// update current client title and title in our frame | 969 | /// update current client title and title in our frame |
970 | void FluxboxWindow::updateTitleFromClient() { | 970 | void FluxboxWindow::updateTitleFromClient() { |
971 | |||
972 | m_client->updateTitle(); | 971 | m_client->updateTitle(); |
973 | m_labelbuttons[m_client]->setText(m_client->title()); | 972 | // compare old title with new and see if we need to update |
974 | m_labelbuttons[m_client]->clear(); // redraw text | 973 | // graphics |
974 | if (m_labelbuttons[m_client]->text() != m_client->title()) { | ||
975 | m_labelbuttons[m_client]->setText(m_client->title()); | ||
976 | m_labelbuttons[m_client]->clear(); // redraw text | ||
977 | m_labelbuttons[m_client]->updateTransparent(); | ||
978 | } | ||
975 | } | 979 | } |
976 | 980 | ||
977 | /// update icon title from client | 981 | /// update icon title from client |
@@ -1108,8 +1112,9 @@ void FluxboxWindow::moveResize(int new_x, int new_y, | |||
1108 | new_height = height(); | 1112 | new_height = height(); |
1109 | } | 1113 | } |
1110 | 1114 | ||
1111 | setFocusFlag(focused); | ||
1112 | frame().moveResize(new_x, new_y, new_width, new_height); | 1115 | frame().moveResize(new_x, new_y, new_width, new_height); |
1116 | setFocusFlag(focused); | ||
1117 | |||
1113 | 1118 | ||
1114 | shaded = false; | 1119 | shaded = false; |
1115 | send_event = true; | 1120 | send_event = true; |
@@ -1652,9 +1657,8 @@ void FluxboxWindow::setFocusFlag(bool focus) { | |||
1652 | 1657 | ||
1653 | installColormap(focus); | 1658 | installColormap(focus); |
1654 | 1659 | ||
1655 | if (focus != frame().focused()) { | 1660 | if (focus != frame().focused()) |
1656 | frame().setFocus(focus); | 1661 | frame().setFocus(focus); |
1657 | } | ||
1658 | 1662 | ||
1659 | if ((screen().isSloppyFocus() || screen().isSemiSloppyFocus()) | 1663 | if ((screen().isSloppyFocus() || screen().isSemiSloppyFocus()) |
1660 | && screen().doAutoRaise()) { | 1664 | && screen().doAutoRaise()) { |
@@ -1948,7 +1952,6 @@ void FluxboxWindow::handleEvent(XEvent &event) { | |||
1948 | } | 1952 | } |
1949 | 1953 | ||
1950 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { | 1954 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { |
1951 | |||
1952 | // we're only concerned about client window event | 1955 | // we're only concerned about client window event |
1953 | WinClient *client = findClient(re.window); | 1956 | WinClient *client = findClient(re.window); |
1954 | if (client == 0) { | 1957 | if (client == 0) { |