From ea0762530343d07e80ea667bb646836e2dfe4b1d Mon Sep 17 00:00:00 2001 From: rathnor Date: Thu, 17 Jul 2003 17:56:28 +0000 Subject: fix java bug (wasn't sending ConfigureNotify events in response to ConfigureRequests). Also fix no border on transients and some initial gnome atom values. --- BUGS | 6 ++++-- ChangeLog | 5 +++++ src/Gnome.cc | 8 +++++++- src/Window.cc | 22 ++++++++++------------ src/Window.hh | 4 ++-- 5 files changed, 28 insertions(+), 17 deletions(-) diff --git a/BUGS b/BUGS index 94ee4b0..ba45b5a 100644 --- a/BUGS +++ b/BUGS @@ -22,8 +22,6 @@ BUGS: * After startup the font of the toolbar is to big; reload config works around this. - * Transient windows seem to not have a X border - is this right? - * Saving of number of workspaces on restart * Multiple transients: @@ -68,3 +66,7 @@ Fixed bugs (or not-our-fault bugs): * Workspace1... Workspace12 are disabled * MoveTab* actions are disabled + + * Transient windows seem to not have a X border - is this right? + => no, they ought to have a border + diff --git a/ChangeLog b/ChangeLog index a535688..84a7834 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,10 @@ (Format: Year/Month/Day) Changes for 0.9.5: +*03/07/18: + * Fix java bug. Wasn't sending ConfigureNotify's to client (Simon) + - also fix missing border on transient windows + - also set some gnome hints initially + Window.hh/cc Gnome.cc *03/07/12: * Fixed 8 bpp crash (Henrik) ImageControl.cc diff --git a/src/Gnome.cc b/src/Gnome.cc index 10d1775..ab08ea1 100644 --- a/src/Gnome.cc +++ b/src/Gnome.cc @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Gnome.cc,v 1.29 2003/07/04 01:03:40 rathnor Exp $ +// $Id: Gnome.cc,v 1.30 2003/07/17 17:56:28 rathnor Exp $ #include "Gnome.hh" @@ -99,6 +99,8 @@ void Gnome::setupFrame(FluxboxWindow &win) { flags = *data; setState(&win, flags); XFree (data); + } else { + updateState(win); } // load gnome layer atom @@ -109,6 +111,8 @@ void Gnome::setupFrame(FluxboxWindow &win) { flags = *data; setLayer(&win, flags); XFree (data); + } else { + updateLayer(win); } // load gnome workspace atom @@ -120,6 +124,8 @@ void Gnome::setupFrame(FluxboxWindow &win) { if (win.workspaceNumber() != workspace_num) win.screen().reassociateWindow(&win, workspace_num, false); XFree (data); + } else { + updateWorkspace(win); } } diff --git a/src/Window.cc b/src/Window.cc index e0ed011..a1be00e 100644 --- a/src/Window.cc +++ b/src/Window.cc @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.cc,v 1.203 2003/07/10 11:33:31 fluxgen Exp $ +// $Id: Window.cc,v 1.204 2003/07/17 17:56:28 rathnor Exp $ #include "Window.hh" @@ -439,7 +439,7 @@ void FluxboxWindow::init() { // adjust the window decorations based on transience and window sizes if (m_client->isTransient()) { decorations.maximize = functions.maximize = false; - decorations.handle = decorations.border = false; + decorations.handle = false; } if ((m_client->normal_hint_flags & PMinSize) && @@ -1956,7 +1956,7 @@ void FluxboxWindow::handleEvent(XEvent &event) { void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { - // we're only conserned about client window event + // we're only concerned about client window event WinClient *client = findClient(re.window); if (client == 0) { #ifdef DEBUG @@ -2032,9 +2032,6 @@ void FluxboxWindow::mapNotifyEvent(XMapEvent &ne) { else setFocusFlag(false); - if (focused) - frame().setFocus(true); - iconic = false; // Auto-group from tab? @@ -2208,7 +2205,7 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { if (cr.value_mask & CWHeight) ch = cr.height; - // whether we should send ConfigureNotify to clients + // whether we should send ConfigureNotify to netizens bool send_notify = false; // the request is for client window so we resize the frame to it first @@ -2223,9 +2220,6 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { send_notify = false; } - if (send_notify) - sendConfigureNotify(); - if (cr.value_mask & CWStackMode) { switch (cr.detail) { case Above: @@ -2241,6 +2235,7 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) { } } + sendConfigureNotify(send_notify); } @@ -3270,7 +3265,7 @@ void FluxboxWindow::resizeClient(WinClient &client, frame().clientArea().height()); } -void FluxboxWindow::sendConfigureNotify() { +void FluxboxWindow::sendConfigureNotify(bool send_to_netizens) { ClientList::iterator client_it = m_clientlist.begin(); ClientList::iterator client_it_end = m_clientlist.end(); for (; client_it != client_it_end; ++client_it) { @@ -3301,7 +3296,10 @@ void FluxboxWindow::sendConfigureNotify() { event.xconfigure.above = frame().window().window(); event.xconfigure.override_redirect = false; - screen().updateNetizenConfigNotify(event); + XSendEvent(display, client.window(), False, StructureNotifyMask, &event); + + if (send_to_netizens) + screen().updateNetizenConfigNotify(event); } // end for } diff --git a/src/Window.hh b/src/Window.hh index 7ed7257..5a68a54 100644 --- a/src/Window.hh +++ b/src/Window.hh @@ -22,7 +22,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: Window.hh,v 1.83 2003/07/10 11:32:57 fluxgen Exp $ +// $Id: Window.hh,v 1.84 2003/07/17 17:56:28 rathnor Exp $ #ifndef WINDOW_HH #define WINDOW_HH @@ -386,7 +386,7 @@ private: void left_fixsize(int *x = 0, int *y = 0); void resizeClient(WinClient &client, unsigned int width, unsigned int height); /// sends configurenotify to all clients - void sendConfigureNotify(); + void sendConfigureNotify(bool send_to_netizens = true); // state and hint signals WinSubject m_hintsig, m_statesig, m_layersig, m_workspacesig, m_diesig; -- cgit v0.11.2