fix java bug (wasn't sending ConfigureNotify events in response to ConfigureRequests). Also fix no border on transients and some initial gnome atom values.
@@ -22,8 +22,6 @@
* 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 @@
* 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 +
@@ -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
@@ -19,7 +19,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// 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 @@ (unsigned char **) &data) && data) {
flags = *data; setState(&win, flags); XFree (data); + } else { + updateState(win); } // load gnome layer atom@@ -109,6 +111,8 @@ (unsigned char **) &data) == Success && data) {
flags = *data; setLayer(&win, flags); XFree (data); + } else { + updateLayer(win); } // load gnome workspace atom@@ -120,6 +124,8 @@ unsigned int workspace_num = *data;
if (win.workspaceNumber() != workspace_num) win.screen().reassociateWindow(&win, workspace_num, false); XFree (data); + } else { + updateWorkspace(win); } }
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// 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 @@
// 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::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@@ -2031,9 +2031,6 @@ if (client->isTransient() || screen().doFocusNew())
setInputFocus(); else setFocusFlag(false); - - if (focused) - frame().setFocus(true); iconic = false;@@ -2208,7 +2205,7 @@
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 @@ // since we already send a notify in move we don't need to do that again
send_notify = false; } - if (send_notify) - sendConfigureNotify(); - if (cr.value_mask & CWStackMode) { switch (cr.detail) { case Above:@@ -2241,6 +2235,7 @@ break;
} } + sendConfigureNotify(send_notify); }@@ -3270,7 +3265,7 @@ frame().clientArea().width(),
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 @@ event.xconfigure.border_width = client.old_bw;
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 }
@@ -22,7 +22,7 @@ // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
// 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 @@ void right_fixsize(int *x = 0, int *y = 0);
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;