From b6d5b558fe9b490284a3901ed76243f6b4c580b8 Mon Sep 17 00:00:00 2001 From: rathnor Date: Sat, 1 Nov 2003 00:12:53 +0000 Subject: slit client mapping on restart, surplus menu redraw --- ChangeLog | 2 ++ src/FbTk/Menu.cc | 3 +-- src/Slit.cc | 7 +++++-- src/SlitClient.hh | 3 ++- 4 files changed, 10 insertions(+), 5 deletions(-) diff --git a/ChangeLog b/ChangeLog index 9bae23b..461226e 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,6 +1,8 @@ (Format: Year/Month/Day) Changes for 0.9.6: *03/10/31: + * Fix slit client map on restart and surplus menu redraw (Simon) + SlitClient.hh Slit.cc Menu.cc * Fix textbutton text alignment (out by one) (Simon) TextButton.cc * Tweak some positioning for winbutton drawn icons (Simon) diff --git a/src/FbTk/Menu.cc b/src/FbTk/Menu.cc index ebaea3b..8b4a91e 100644 --- a/src/FbTk/Menu.cc +++ b/src/FbTk/Menu.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Menu.cc,v 1.39 2003/10/06 09:55:36 rathnor Exp $ +// $Id: Menu.cc,v 1.40 2003/11/01 00:12:53 rathnor Exp $ //use GNU extensions #ifndef _GNU_SOURCE @@ -723,7 +723,6 @@ void Menu::drawSubmenu(unsigned int index) { if (! item->submenu()->isVisible()) { item->submenu()->show(); item->submenu()->raise(); - item->submenu()->renderTransFrame(); } item->submenu()->moving = moving; diff --git a/src/Slit.cc b/src/Slit.cc index a16bfb8..422d0e4 100644 --- a/src/Slit.cc +++ b/src/Slit.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Slit.cc,v 1.80 2003/08/30 01:01:47 fluxgen Exp $ +// $Id: Slit.cc,v 1.81 2003/11/01 00:12:53 rathnor Exp $ #include "Slit.hh" @@ -968,7 +968,10 @@ void Slit::handleEvent(XEvent &event) { configureRequestEvent(event.xconfigurerequest); } else if (event.type == DestroyNotify) { removeClient(event.xdestroywindow.window, false); - } else if (event.type == UnmapNotify) { + } else if (event.type == UnmapNotify && event.xany.send_event) { + // we ignore server-generated events, which can occur + // on restart. The ICCCM says that a client must send + // a synthetic event for the withdrawn state removeClient(event.xunmap.window); } } diff --git a/src/SlitClient.hh b/src/SlitClient.hh index 5719ab0..f88c062 100644 --- a/src/SlitClient.hh +++ b/src/SlitClient.hh @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: SlitClient.hh,v 1.1 2003/06/20 01:25:26 fluxgen Exp $ +// $Id: SlitClient.hh,v 1.2 2003/11/01 00:12:53 rathnor Exp $ #ifndef SLITCLIENT_HH #define SLITCLIENT_HH @@ -55,6 +55,7 @@ public: void setWindow(Window win) { m_window = win; } void move(int x, int y) { m_x = x; m_y = y; } void resize(unsigned int width, unsigned int height) { m_width = width; m_height = height; } + void moveResize(int x, int y, unsigned int width, unsigned int height) { m_x = x; m_y = y; m_width = width; m_height = height; } void hide(); void show(); void setVisible(bool value) { m_visible = value; } -- cgit v0.11.2