diff options
author | rathnor <rathnor> | 2003-07-17 17:56:28 (GMT) |
---|---|---|
committer | rathnor <rathnor> | 2003-07-17 17:56:28 (GMT) |
commit | ea0762530343d07e80ea667bb646836e2dfe4b1d (patch) | |
tree | 2a0b6632ac7242f609f5d73e2150c0636a87c432 /src | |
parent | da1afd9bc238f1902c260d42df23c5d00c00d47e (diff) | |
download | fluxbox-ea0762530343d07e80ea667bb646836e2dfe4b1d.zip fluxbox-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.cc | 8 | ||||
-rw-r--r-- | src/Window.cc | 22 | ||||
-rw-r--r-- | src/Window.hh | 4 |
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 | ||
1957 | void FluxboxWindow::mapRequestEvent(XMapRequestEvent &re) { | 1957 | void 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 | ||
3273 | void FluxboxWindow::sendConfigureNotify() { | 3268 | void 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 | ||