summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorrathnor <rathnor>2003-07-17 17:56:28 (GMT)
committerrathnor <rathnor>2003-07-17 17:56:28 (GMT)
commitea0762530343d07e80ea667bb646836e2dfe4b1d (patch)
tree2a0b6632ac7242f609f5d73e2150c0636a87c432 /src
parentda1afd9bc238f1902c260d42df23c5d00c00d47e (diff)
downloadfluxbox_lack-ea0762530343d07e80ea667bb646836e2dfe4b1d.zip
fluxbox_lack-ea0762530343d07e80ea667bb646836e2dfe4b1d.tar.bz2
fix java bug (wasn't sending ConfigureNotify events in response to
ConfigureRequests). Also fix no border on transients and some initial gnome atom values.
Diffstat (limited to 'src')
-rw-r--r--src/Gnome.cc8
-rw-r--r--src/Window.cc22
-rw-r--r--src/Window.hh4
3 files changed, 19 insertions, 15 deletions
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 @@
19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER 19// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
20// DEALINGS IN THE SOFTWARE. 20// DEALINGS IN THE SOFTWARE.
21 21
22// $Id: Gnome.cc,v 1.29 2003/07/04 01:03:40 rathnor Exp $ 22// $Id: Gnome.cc,v 1.30 2003/07/17 17:56:28 rathnor Exp $
23 23
24#include "Gnome.hh" 24#include "Gnome.hh"
25 25
@@ -99,6 +99,8 @@ void Gnome::setupFrame(FluxboxWindow &win) {
99 flags = *data; 99 flags = *data;
100 setState(&win, flags); 100 setState(&win, flags);
101 XFree (data); 101 XFree (data);
102 } else {
103 updateState(win);
102 } 104 }
103 105
104 // load gnome layer atom 106 // load gnome layer atom
@@ -109,6 +111,8 @@ void Gnome::setupFrame(FluxboxWindow &win) {
109 flags = *data; 111 flags = *data;
110 setLayer(&win, flags); 112 setLayer(&win, flags);
111 XFree (data); 113 XFree (data);
114 } else {
115 updateLayer(win);
112 } 116 }
113 117
114 // load gnome workspace atom 118 // load gnome workspace atom
@@ -120,6 +124,8 @@ void Gnome::setupFrame(FluxboxWindow &win) {
120 if (win.workspaceNumber() != workspace_num) 124 if (win.workspaceNumber() != workspace_num)
121 win.screen().reassociateWindow(&win, workspace_num, false); 125 win.screen().reassociateWindow(&win, workspace_num, false);
122 XFree (data); 126 XFree (data);
127 } else {
128 updateWorkspace(win);
123 } 129 }
124 130
125} 131}
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 @@
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.203 2003/07/10 11:33:31 fluxgen Exp $ 25// $Id: Window.cc,v 1.204 2003/07/17 17:56:28 rathnor Exp $
26 26
27#include "Window.hh" 27#include "Window.hh"
28 28
@@ -439,7 +439,7 @@ void FluxboxWindow::init() {
439 // adjust the window decorations based on transience and window sizes 439 // adjust the window decorations based on transience and window sizes
440 if (m_client->isTransient()) { 440 if (m_client->isTransient()) {
441 decorations.maximize = functions.maximize = false; 441 decorations.maximize = functions.maximize = false;
442 decorations.handle = decorations.border = false; 442 decorations.handle = false;
443 } 443 }
444 444
445 if ((m_client->normal_hint_flags & PMinSize) && 445 if ((m_client->normal_hint_flags & PMinSize) &&
@@ -1956,7 +1956,7 @@ void FluxboxWindow::handleEvent(XEvent &event) {
1956 1956
1957void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { 1957void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) {
1958 1958
1959 // we're only conserned about client window event 1959 // we're only concerned about client window event
1960 WinClient *client = findClient(re.window); 1960 WinClient *client = findClient(re.window);
1961 if (client == 0) { 1961 if (client == 0) {
1962#ifdef DEBUG 1962#ifdef DEBUG
@@ -2032,9 +2032,6 @@ void FluxboxWindow::mapNotifyEvent(XMapEvent &ne) {
2032 else 2032 else
2033 setFocusFlag(false); 2033 setFocusFlag(false);
2034 2034
2035 if (focused)
2036 frame().setFocus(true);
2037
2038 iconic = false; 2035 iconic = false;
2039 2036
2040 // Auto-group from tab? 2037 // Auto-group from tab?
@@ -2208,7 +2205,7 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) {
2208 if (cr.value_mask & CWHeight) 2205 if (cr.value_mask & CWHeight)
2209 ch = cr.height; 2206 ch = cr.height;
2210 2207
2211 // whether we should send ConfigureNotify to clients 2208 // whether we should send ConfigureNotify to netizens
2212 bool send_notify = false; 2209 bool send_notify = false;
2213 2210
2214 // the request is for client window so we resize the frame to it first 2211 // the request is for client window so we resize the frame to it first
@@ -2223,9 +2220,6 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) {
2223 send_notify = false; 2220 send_notify = false;
2224 } 2221 }
2225 2222
2226 if (send_notify)
2227 sendConfigureNotify();
2228
2229 if (cr.value_mask & CWStackMode) { 2223 if (cr.value_mask & CWStackMode) {
2230 switch (cr.detail) { 2224 switch (cr.detail) {
2231 case Above: 2225 case Above:
@@ -2241,6 +2235,7 @@ void FluxboxWindow::configureRequestEvent(XConfigureRequestEvent &cr) {
2241 } 2235 }
2242 } 2236 }
2243 2237
2238 sendConfigureNotify(send_notify);
2244} 2239}
2245 2240
2246 2241
@@ -3270,7 +3265,7 @@ void FluxboxWindow::resizeClient(WinClient &client,
3270 frame().clientArea().height()); 3265 frame().clientArea().height());
3271} 3266}
3272 3267
3273void FluxboxWindow::sendConfigureNotify() { 3268void FluxboxWindow::sendConfigureNotify(bool send_to_netizens) {
3274 ClientList::iterator client_it = m_clientlist.begin(); 3269 ClientList::iterator client_it = m_clientlist.begin();
3275 ClientList::iterator client_it_end = m_clientlist.end(); 3270 ClientList::iterator client_it_end = m_clientlist.end();
3276 for (; client_it != client_it_end; ++client_it) { 3271 for (; client_it != client_it_end; ++client_it) {
@@ -3301,7 +3296,10 @@ void FluxboxWindow::sendConfigureNotify() {
3301 event.xconfigure.above = frame().window().window(); 3296 event.xconfigure.above = frame().window().window();
3302 event.xconfigure.override_redirect = false; 3297 event.xconfigure.override_redirect = false;
3303 3298
3304 screen().updateNetizenConfigNotify(event); 3299 XSendEvent(display, client.window(), False, StructureNotifyMask, &event);
3300
3301 if (send_to_netizens)
3302 screen().updateNetizenConfigNotify(event);
3305 } // end for 3303 } // end for
3306} 3304}
3307 3305
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 @@
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.hh,v 1.83 2003/07/10 11:32:57 fluxgen Exp $ 25// $Id: Window.hh,v 1.84 2003/07/17 17:56:28 rathnor Exp $
26 26
27#ifndef WINDOW_HH 27#ifndef WINDOW_HH
28#define WINDOW_HH 28#define WINDOW_HH
@@ -386,7 +386,7 @@ private:
386 void left_fixsize(int *x = 0, int *y = 0); 386 void left_fixsize(int *x = 0, int *y = 0);
387 void resizeClient(WinClient &client, unsigned int width, unsigned int height); 387 void resizeClient(WinClient &client, unsigned int width, unsigned int height);
388 /// sends configurenotify to all clients 388 /// sends configurenotify to all clients
389 void sendConfigureNotify(); 389 void sendConfigureNotify(bool send_to_netizens = true);
390 // state and hint signals 390 // state and hint signals
391 WinSubject m_hintsig, m_statesig, m_layersig, m_workspacesig, m_diesig; 391 WinSubject m_hintsig, m_statesig, m_layersig, m_workspacesig, m_diesig;
392 392