Commit graph

750 commits

Author SHA1 Message Date
Dana Jansens
af42ac2a53 less configure events on mapping 2007-06-01 05:21:09 +00:00
Dana Jansens
32b64b6cf5 fix comment 2007-06-01 04:59:57 +00:00
Dana Jansens
9b5770277d less configurenotify spam 2007-06-01 04:54:42 +00:00
Dana Jansens
4ff0d49cc7 deiconify modal windows when you try to focus their parent 2007-05-30 20:46:46 +00:00
Dana Jansens
7d93a21878 let new utility windows get focus under the normal rules 2007-05-30 19:16:19 +00:00
Dana Jansens
9a3464b8e3 that change was a bug after all. mika was right! 2007-05-30 02:19:02 +00:00
Dana Jansens
a4150ae3d9 add comments 2007-05-29 12:26:41 +00:00
Dana Jansens
6fa15756c3 wasted checked, configure will do them for us 2007-05-29 00:04:07 +00:00
Dana Jansens
ba2de2d512 give the client a 0 border again. 2007-05-28 23:15:51 +00:00
Dana Jansens
56b01b73a8 have the clientpadding color show during resize, and no flashing on unmap. we win ! 2007-05-28 22:46:28 +00:00
Dana Jansens
2aa0a6b01b get rid of the plate window 2007-05-28 22:30:59 +00:00
Dana Jansens
c7731ecb8d a better ordering for mapping window configure events
configure the window to find where it will actually be, with all the startup states off. then apply the startup states to those dimensions
2007-05-28 21:08:28 +00:00
Dana Jansens
123ee25c59 final touches for r6990-6992 2007-05-28 04:26:14 +00:00
Dana Jansens
be3b78736f better more obvious code 2007-05-28 04:18:54 +00:00
Dana Jansens
cc2237bb4f fix a comment 2007-05-28 04:09:39 +00:00
Dana Jansens
2050e99a5f dont count non-normal windows as parents, in the group too 2007-05-28 02:21:10 +00:00
Dana Jansens
a5aa1af32c typo again!? 2007-05-28 02:15:47 +00:00
Dana Jansens
5ec53919bd dont count non-normal windows as parents 2007-05-28 02:15:31 +00:00
Dana Jansens
9182f1a603 typo and ()s 2007-05-28 02:13:17 +00:00
Dana Jansens
301016fd2b don't give focus to transient when it is ambiguous, but only if they have a parent 2007-05-28 02:12:36 +00:00
Dana Jansens
e9f6255b18 properly search for a focused window in the transient tree 2007-05-28 02:02:13 +00:00
Dana Jansens
e48dce6707 add a comment 2007-05-28 00:35:11 +00:00
Dana Jansens
16fcb1213d when you focus a window, bring any modal children it has to that desktop
when falling back, return the window which actually was focused by client_focus
let you focus cycle to windows when their modal window is on another desktop (it will be brought over)
2007-05-28 00:33:58 +00:00
Dana Jansens
8874ec1fc4 put transients on the current desktop when their parent is on all desktops 2007-05-28 00:05:51 +00:00
Dana Jansens
65bf23c27d when colormap changes and it is installed, reinstall the new one
also add a debug print
2007-05-27 22:39:30 +00:00
Dana Jansens
a9ff8217bf debug prints improved 2007-05-27 22:31:38 +00:00
Dana Jansens
c189771cef when an app doesn't specify PPosition or USPosition, then assume its PPosition 2007-05-27 21:30:16 +00:00
Dana Jansens
8e19e99ac8 debug print modified and the confignotify test 2007-05-27 15:28:16 +00:00
Dana Jansens
2521fd24c5 don't set the above member in synthetic configurenotify events
add more output in confignotify test
2007-05-27 14:49:44 +00:00
Dana Jansens
cace930f8c only need to call xconfigurewindow once 2007-05-27 14:33:37 +00:00
Dana Jansens
47986dcd9c always set all the coords, as the x/y only change when resizing the border too 2007-05-27 00:35:00 +00:00
Dana Jansens
a38012f2ff only readjust the frame size when the client needs to be resized 2007-05-26 23:12:29 +00:00
Dana Jansens
5883164b19 fix for not changing clients' border widths on them 2007-05-26 23:09:34 +00:00
Dana Jansens
2e529e3ff3 don't change clients' borders 2007-05-26 22:55:13 +00:00
Dana Jansens
306ea13177 we set borderwidth to 0 so always give that to the client consistently 2007-05-26 22:41:31 +00:00
Dana Jansens
a4f868a195 send the client's border width in configurenotify messages, so it can get the right offset 2007-05-26 22:28:27 +00:00
Dana Jansens
5e9e266722 change in how things are ungrabbed to avoid grabwhilenotify. don't ungrab every key press. just ungrab the passive grab when there is no active grab and we are going to move focus.
this should be less intrusive and seems to work
2007-05-26 22:13:34 +00:00
Dana Jansens
16ae58681e remove a debug print 2007-05-26 17:36:05 +00:00
Dana Jansens
a8fe821fdd use the PSize and USSize hints to decide to resize windows on map or not 2007-05-26 15:38:54 +00:00
Dana Jansens
e9ccc6a82e fix a debug print 2007-05-26 15:25:57 +00:00
Dana Jansens
7d164842e0 give focus to new windows when *any* relative already has focus..
don't give it when it will not go to the window anyway tho, like if there is already a modal child for it
2007-05-26 14:56:53 +00:00
Dana Jansens
5a1fa9210d add a debug print 2007-05-26 03:09:45 +00:00
Dana Jansens
d1570968cf put the hostname in icon titles too 2007-05-25 14:08:54 +00:00
Dana Jansens
38d1f2cba6 send iconic windows to the bottom of the focus list so you can a-s-tab tog get back what you just iconified 2007-05-25 14:07:34 +00:00
Dana Jansens
f9cf8fcea8 dont give focus to transients when the situation is ambiguous 2007-05-24 21:01:19 +00:00
Dana Jansens
33d48c5271 add a debug print 2007-05-24 20:33:55 +00:00
Dana Jansens
081c7c0cfe experimental change. when apps map, make them fit inside the struts and the screen and stuff, unless they are user-positioned 2007-05-24 20:29:30 +00:00
Dana Jansens
689157e869 only put a transient for the group onto some other desktop if its whole group is over there 2007-05-24 19:38:03 +00:00
Dana Jansens
e2da966bcb choose the closest icon size, not always the first icon. :X 2007-05-24 19:28:22 +00:00
Dana Jansens
10e08f6cd8 use maximized state to try find fullscreen sized windows that shouldnt be considered fullscreen, instead of using the undecorated flag 2007-05-24 12:47:19 +00:00
Dana Jansens
192cc6b4f4 don't let you maximize menu and toolbars 2007-05-23 16:17:03 +00:00
Dana Jansens
630d9504d3 let you iconify utility windows 2007-05-23 16:13:50 +00:00
Dana Jansens
93d9201cba first step of changing the types and their restrictions 2007-05-23 16:07:55 +00:00
Dana Jansens
2fb7a6e478 yay! gravity finally works right! 2007-05-23 15:16:13 +00:00
Dana Jansens
6fb3e62a31 when a window is being kept on screen (espcially from mapping more or less) and the position didnt come from the user (USPosition) then force the top left corner of the app on screen so it doesnt hide behind panels or whatever and you cant get at the titlebar 2007-05-23 01:15:07 +00:00
Dana Jansens
89c7b236b5 fix libwnck by unmapping the plate window as well as the client during iconify animation 2007-05-23 01:00:27 +00:00
Dana Jansens
206ad12bda fix window gravity..
also less setting the wm_state hint redundantly
2007-05-22 23:21:46 +00:00
Dana Jansens
a6903d9056 settings is never null anymore, so dont bother to check. also use else's because we don't need to set match=false 3 times 2007-05-22 21:54:33 +00:00
Dana Jansens
0a2cf076df back out 6769 on files that werent supposed to commit yet 2007-05-22 20:53:34 +00:00
Dana Jansens
a16f1374ee comment out the applications example 2007-05-22 20:52:42 +00:00
Dana Jansens
e97a443590 don't compare variables to themselves 2007-05-22 02:28:03 +00:00
Dana Jansens
4c25342316 dont use the client's area rect when figuring out where to place it because then when you want to move ti there, it thinks that it is already there! i actually fixed another bug recently that would have affectd this before but now it should work perfect.. 2007-05-22 01:36:17 +00:00
Dana Jansens
e8bac610ad adjust the frame's size before placing the window so we know how much decor it has 2007-05-22 01:32:28 +00:00
Dana Jansens
a0941554f6 fix showing the resize cursors at the right times.
fix losing the pre-size/position for windows mapped maximized or fullscreen states (and on restart)
2007-05-22 01:03:13 +00:00
Dana Jansens
c5508ec16f we put desktop windows on all desktops so dont let them move.
make sure the window can move/resize when shutting down and restoring its geometry
2007-05-22 00:24:06 +00:00
Dana Jansens
f0940aba64 missing another break; ! wow 2007-05-22 00:19:04 +00:00
Dana Jansens
798ed11be8 missing a break; heh 2007-05-22 00:18:45 +00:00
Dana Jansens
62c311ba92 better ordering so you can unmaximize maximized windows.. but you cant resize them 2007-05-22 00:11:14 +00:00
Dana Jansens
119c48fc6c you can't resize fully maxed windows 2007-05-22 00:09:08 +00:00
Dana Jansens
b8f207892a some repositioning of frame elements for maximized windows.
fix clicking on borders not counting as the button in that corner for full max windows
disable the resize cursors for full max windows
2007-05-21 23:56:07 +00:00
Dana Jansens
bca4fe6c8b maybe the user time stuff should be more like other wm implementtions and less in the way 2007-05-21 21:48:27 +00:00
Dana Jansens
fd8ce9414a use simple pattern matching for per-app settings. all rules that match are applied to a window rather than just the first 2007-05-21 03:42:25 +00:00
Dana Jansens
64d812c6d7 fix windows moving to monitors other than their own. client_find_onscreen uses their desired coordiantes instead of their old ones 2007-05-20 15:16:57 +00:00
Dana Jansens
9752670920 remove a function that is no longer used. and backwards boolean algebra was causing us to not ignore the right enter events 2007-05-19 00:38:06 +00:00
Dana Jansens
6d26502631 super correct enter event ignoring that will only ignore what it has to, yay? 2007-05-18 00:11:01 +00:00
Dana Jansens
382d37553d add an atom ob_wm_action_undecorate to match with ob_wm_state_undecorated, so stuff could know if the window can be undecorated 2007-05-17 04:15:34 +00:00
Dana Jansens
c6dac85397 don't let the user toggle decorations on widnows that don't have any decorations to toggle 2007-05-17 02:29:13 +00:00
Dana Jansens
281c1edb42 kill enter events without using pointer grabs 2007-05-17 02:21:22 +00:00
Dana Jansens
b1076c9333 rename client_configure_full to client_configure 2007-05-17 01:45:00 +00:00
Dana Jansens
2ca83f6713 grab the pointer when windows move them selves so no enter events happen. i wonder if this will cause but reports. it still does for restacking though..
little cleanup in client.c, and remove client_configure macro which was now
redundant
2007-05-17 01:38:01 +00:00
Dana Jansens
619eeaa962 grab the pointer accross actions run by the applications, the same as for
actions run by the user
2007-05-17 00:56:29 +00:00
Dana Jansens
4fdf8a4315 "fullscreen" windows that are undecorated by the user do not count as legacy fullscreen windows 2007-05-17 00:50:09 +00:00
Dana Jansens
b69bf80982 fullscreen only if no decorations 2007-05-16 17:01:47 +00:00
Dana Jansens
d30809e5fa always ignore errors for client_focus like we used to. 2007-05-15 17:38:52 +00:00
Dana Jansens
361bf6af5c simplify focus handling a bit. no need to listen to focus going to the frame because if it ever does that, the window is unmapping and the frame will just unmap and send it to root.
make focus fallback a lil more robust, it checks for errors when it sets focus on the window, and if an error occured it will focus the next option.
2007-05-15 04:32:59 +00:00
Dana Jansens
5d85502e3b also if you hide the focused window, then kill the interactive action so focus isnt all confused for the app 2007-05-14 23:34:05 +00:00
Dana Jansens
47c8d40729 don't assert, users can bind stuff however they like. but if they do something that moves focus during an interactive action, kill the grab 2007-05-14 23:32:50 +00:00
Dana Jansens
8f2291a7b6 excep the assert was backwards. heh 2007-05-14 23:22:06 +00:00
Dana Jansens
f5d7952a94 big scary g_assert(). interactive actions should never move focus until they're done. 2007-05-14 23:21:53 +00:00
Dana Jansens
f9fe78d970 get rid of the fullscreen below layer. its the same as maximized windows.. 2007-05-14 23:00:36 +00:00
Dana Jansens
ec21f8c9ec yay for simplifying code. if we check for errors we dont need the "focus_tried" stuff 2007-05-14 22:58:08 +00:00
Dana Jansens
415ce6e5de watch for errors while setting focus on windows, return false if there was an error, so fallback and keep looking 2007-05-14 22:52:40 +00:00
Dana Jansens
2e7359a2fd fix fullscreen windows being stuck in the wrong layer when they come out of
fullscreen.
add a new layer where fullscreen windows go when are aren't focused, below
all normal windows, so you can alt-tab to a below layer window and it will
show itself.
2007-05-14 22:20:48 +00:00
Dana Jansens
b906db3e11 remove the dialog option for Desktop action for now. can't change desktop during a grab. the dialog for desktop changing will need to change, and then we can add it back 2007-05-14 20:55:36 +00:00
Dana Jansens
9011eb27e0 remove this check, it didnt guarantee anything anyways 2007-05-14 13:44:49 +00:00
Dana Jansens
26ff0cbaa8 the configurenotify needs to come after adjusting the frame's size. otherwise it gets messed up somehow. 2007-05-14 02:27:43 +00:00
Dana Jansens
1a5139f283 send a configurenotify on mapping after the window is shown 2007-05-14 02:20:59 +00:00
Dana Jansens
9d7608789c another little focus cleanup/rearrangement, for focus going to windows that
are no longer there.
2007-05-14 01:06:42 +00:00
Dana Jansens
1eff22b1ef remove some old checking because we're not using window properties to store the premax/fullscreen areas. they are always set when the state is turned on.
fullscreen to the correct monitor.
2007-05-14 00:07:38 +00:00
Dana Jansens
99e23015cf rename the openbox_* atoms back to ob_* 2007-05-13 22:31:36 +00:00
Mikael Magnusson
73e7b2925a fix error in client_directional_edge_search that ignored all windows in the same layer 2007-05-13 21:13:29 +00:00
Dana Jansens
94d9d069b5 add a debug line 2007-05-13 17:17:23 +00:00
Dana Jansens
11df262d7e add support for _NET_WM_ACTION_ABOVE and _NET_WM_ACTION_BELOW which aren't in the NETWM spec yet, but will be shortly. 2007-05-13 17:15:15 +00:00
Dana Jansens
0ee1581824 fix drawcontents=no 2007-05-13 16:45:58 +00:00
Dana Jansens
fd9b6a43cf always send configure notify when windows map 2007-05-13 16:04:40 +00:00
Dana Jansens
56d7bc50f0 don't allow focus to move during an interactive grab. if users set up actions
such that this would happen, then kill the interactive grab before moving
focus.
this is to avoid NotifyWhileGrabbed FocusOut's
2007-05-13 15:29:49 +00:00
Dana Jansens
acfa2af3c2 use the right list in client_add_hide_notify, rename destructor to destroy_notify which is really what it is, and is more consistant now that there are 2 notifies 2007-05-13 07:45:15 +00:00
Dana Jansens
685dca1c5f likewise if a window is unmanaged and we were trying to give it focus, we want to know about it - also if the window gets hidden for some other reason, we also want to know about it.
add a notifier for windows being hidden, and use that instead - it handles both cases.
2007-05-13 07:38:35 +00:00
Dana Jansens
1e957a1688 some changes to focus handling.
most interesting is the change in focus_fallback, which means that it won't
call xsetinput focus in some cases, potentially reducing flicker and stuff.
also potentially producing bugs? heh.

the screen.c focus fallback code doesn't seem to need special cases anymore,
which is really good, if that is really the case.

move the focus_tried stuff out of event.c into focus.c, where it seems to
belong.
2007-05-13 07:09:34 +00:00
Dana Jansens
811fa21940 remove the edges_hit_layers_below option. don't use windows in other layers for resistance 2007-05-12 18:56:56 +00:00
Dana Jansens
b2006b8b45 don't show handles on windows that cannot resize 2007-05-11 21:31:19 +00:00
Dana Jansens
b23476ed58 fix for circular transiency 2007-05-11 20:45:26 +00:00
Dana Jansens
2baad3abee oops, debug prints 2007-05-11 05:55:45 +00:00
Dana Jansens
8432416d4e pick the closest icon instead of always a smaller one 2007-05-11 05:54:57 +00:00
Dana Jansens
75372cd4a7 set the default window gravity to NorthWest.
only put the bare minimum inside the server grab.
adjust the frame decorations in client_manage instead of frame_grab_client
remove the last parameter from client_configure_full and just determine it from the other state available.
send configurenotifies at all the right times.
make windows get restored to their position properly when they have a border
2007-05-11 02:46:59 +00:00
Dana Jansens
65d50861ad when un-showing the desktop if a window is getting shown, iconify the others so just the one is shown 2007-05-10 23:22:54 +00:00
Dana Jansens
f1f946ea02 stacking fixes for layers 2007-05-10 20:23:27 +00:00
Dana Jansens
4a34c7ddb2 don't get the layer from the group like that. let new windows go in their default layer. they are already kept above their parents. 2007-05-10 17:15:41 +00:00
Dana Jansens
11dd7db876 make the frame before you use the frame.. 2007-05-10 05:25:34 +00:00
Dana Jansens
083a7565c7 set the session stuff before trying to apply per-app settings.
set the decor/functions after restoring all the stuff from session/per-app too
2007-05-10 05:21:05 +00:00
Dana Jansens
9830440643 make restacking much better, yay
no more cludge using actions to raise windows. when a window changes layer it
uses add_nonintrusive now so it won't cover the focused window. this way
fullscreen windows when they drop down, don't cover up the new focus target.

fix add_nonintrusive so that if the window is focused it gets added to the top

add back support for ConfigureRequest restacking, this time properly though,
using all the detail and sibling modes. but when windows use this to raise they
are using some old business and we're going to assume they actually want to
activate instead. this means firefox works nicely. yay.

ubuntu's firefox has been made to just stop raising entirely though. !
2007-05-10 00:57:35 +00:00
Dana Jansens
66afa1dceb when a window is fully maxed, make clicking on the titlebar past the edge buttons count as clicking on the buttons 2007-05-09 22:21:28 +00:00
Dana Jansens
f03eef2795 mem leak 2007-05-09 21:27:45 +00:00
Dana Jansens
7f262bc2a0 add support for _NET_REQUEST_FRAME_EXTENTS 2007-05-09 20:13:20 +00:00
Dana Jansens
851555348e support for _NET_WM_USER_TIME_WINDOW round 2 ! yay abstraction 2007-05-09 17:58:58 +00:00
Dana Jansens
cdb108c76d add support for _NET_WM_USER_TIME_WINDOW. round 1 ! ding. 2007-05-09 17:01:30 +00:00
Dana Jansens
5aea44adc9 punctuation 2007-05-09 03:41:05 +00:00
Dana Jansens
48d7045208 update the client menu when you do stuff without closing it.
but this means we can't use actions in it. oh well?
can kill the desktop notifiers now too. yay for more obvious code paths.
2007-05-08 23:50:13 +00:00
Dana Jansens
709ebbb6a2 let you move splash screens if you are so inclined 2007-05-08 22:56:29 +00:00
Dana Jansens
d074b11bf9 let windows that cant iconify still iconify with their parents, but not non-normal windows.
let you focus windows that wouldnt normally by clicking on their decor (if they have any)
2007-05-08 22:53:09 +00:00
Dana Jansens
f0e5332b4a but deiconify 2007-05-08 22:36:52 +00:00
Dana Jansens
370b5ba27d dont iconify if you can't 2007-05-08 22:36:26 +00:00
Dana Jansens
b0f43a1159 don't focus splash screens and toolbars and menus when you click on them. or enter them. 2007-05-08 22:29:39 +00:00
Dana Jansens
9782122339 try again. merge r6177-6182 from 3.4-working 2007-05-08 22:03:56 +00:00
Dana Jansens
1e4215c5c6 merge r6176-6182 from 3.4-working 2007-05-08 21:57:36 +00:00
Dana Jansens
aae4f66f68 recalc the layer when above/below changes 2007-05-08 12:22:28 +00:00
Dana Jansens
cc9ef6f22d dont check if relatives have focus. gtk apps all set application even when its from a user event 2007-05-08 02:33:20 +00:00
Dana Jansens
e4cffb6459 redo how a window checks if it can activate.
added the bahavior that.. if an application is the source of the request, it will only move focus if something related to it has focus already (and user time checks out)
2007-05-08 01:59:23 +00:00
Dana Jansens
de82c4a5df i dont like this "application window" concept. swap it with "helper" windows instead which are the inverse. helper windows are utility/menu/toolbar windows. 2007-05-08 01:31:51 +00:00
Dana Jansens
ebabf3943c make helper windows share desktops with all their application top level windows 2007-05-08 01:25:30 +00:00
Dana Jansens
1fa08abd9c um... hide the client menu when the window changes desktops. its not visible anymore (probably..) and no send to menu wont be wrong too. 2007-05-07 23:48:05 +00:00
Dana Jansens
280529221e add a notifier for clients changing desktops. use it to update the send-to menu if it changes. it does this by closing/opening the menu.. thats about the best we can do tho with this menu code without huge changes 2007-05-07 23:26:22 +00:00
Dana Jansens
edf29cfe73 when a window becomes transient for its group, it needs to have group transients removed from itself 2007-05-07 17:07:35 +00:00
Dana Jansens
13df16a681 windows on other desktops are iconic state too 2007-05-07 03:16:45 +00:00
Dana Jansens
f138bd8007 this had changed for the animation stuff but it is no longer needed i think. also in show desktop mode, windows aren't iconic state they are just "behind" the desktop. 2007-05-07 03:10:05 +00:00
Dana Jansens
f506cbceae the session properties are not set on the group leader, they are set on the "client leader" which is in the WM_CLIENT_LEADER property. also they are all set when the window maps, and not to be changed thereafter. 2007-05-07 00:10:15 +00:00
Dana Jansens
b02947c09f client machine and wm_command can be set on the group leader 2007-05-06 23:37:30 +00:00
Dana Jansens
2c507a7207 missed some stuff? 2007-05-06 22:58:51 +00:00
Dana Jansens
6cd5f7ea38 document the per app settings in rc.xml.in. some xsd fixes. add the "default" option to all the per-app settings which is the same as not putting it in there at all. 2007-05-06 22:04:55 +00:00
Dana Jansens
3c4d73c484 save session state for old clients that dont use XSMP. more session improvements. with ksmserver we can save a few things before the clients go messing with stuff during the interactive phase. 2007-05-06 11:14:20 +00:00