| Age | Commit message (Collapse) | Author |
|
|
|
during a dnd.
|
|
change how focus falls back for windows being unmanaged, don't fall back immediately, instead wait for the focus out event and use it (break stuff maybe! yay)
|
|
|
|
|
|
1) don't count non-normal windows as parents when placing/stacking transients
2) in stacking.c, when a window is transient for the group but has no parents, then don't loop forever looking for its parents
|
|
user_time on the currently focused window I think. that will handle panels and things too.
|
|
add ObClientTimeHeap. This is a max-heap of the clients based on their user times. this only includes the clients whose user time is not CurrentTime. the maximum from this heap replaces the client_last_user_time variable, so that you always have the latest time, not the last time that was changed.
hoefully it works, so far it seems to.
|
|
set it up in the session
|
|
also fix a compiler warning.
|
|
http://bugzilla.gnome.org/show_bug.cgi?id=399552
on unmap, when we move the client window, we need to send a synthetic configurenotify.
|
|
a focusout for the window after the unmapnotify anyways.
show new windows when switching desktops before hiding the old windows.
|
|
Send ConfigureNotify events when a window is mapped at the position it has specified. When we add decorations, the window gets moved in reference to the root window, so it needs to be told.
|
|
required ones.
-- http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.3
|
|
stuff. user the last_user_time as a default for new windows instead.
|
|
|
|
|
|
|
|
DetailInferior focusin event on root.
adding some debug messages also which I am using..
|
|
|
|
|
|
probably it was a dumb idea all along. you're not picking the numbers yourself and you're probably not remembering which window they apply to and the focus indicator thinger is much more clever than numbers
|
|
client messages provide a timestamp.
|
|
|
|
updated only when the window is resized.
|
|
1) THIS ONE IS IMPORTANT: don't set client->iconfied if the window is not actually going to be allowed to iconify. heh!
2) changes to focus fallback to avoid crashing and to avoid losing focus all at the same time.
|
|
|
|
flashing.
instead, keep track of if the frame has been mapped yet. if it hasn't and it is getting hidden, then make sure to unmap the child.
|
|
this by...
b) adding a function to let you see what size/position a window will be given when you actually try move/resize it to some given values. (client_try_configure)
|
|
|
|
wanted to do
|
|
unmanage)
|
|
on other desktops too.
as well, this turned out to be a nice cleanup of the wmstate code.
regards to the random dude in #openbox complaining about the ICCCM to make me think to look this up and see if openbox was compliant.
|
|
much cleanup on how per-app settings are applied to new mapping windows. maybe i broke it? but it'll be much quicker now, and it's consistant with the rest of the code, so hooray for that. pls let me know if i broke any of it :( hee..
|
|
iconifies, and don't fallback when nothing has focus, send it to where we can control things though.
|
|
|
|
also validate before trying to set the focus on a window
this should fix those crashes, and should just be better over all
|
|
current form, as well as reading the xlib programming manual at:
http://tronche.com/gui/x/xlib/events/input-focus/normal-and-grabbed.html
this may break for people. that'd be nice to hear about, so it can be fixed. but hopefully this is more robust. it sure is a lot more simple.
|
|
more clever algorithm. It deals with group transients much better.
On that note, utility and menu and toolbar window types are now treated as group transients in terms of stacking and focus and such.
|
|
why.. It meant that we got unmap notifies for windows we weren't even managing and stuff. It ended up breaking VLC when it mapped-unmapped-mapped a window. We grab StructureNotify for all the clients, so I am not sure why this was ever there.
|
|
|
|
|
|
|
|
don't steal focus from globally active focus model clients
|
|
stuff. Also include a big comment as to why this is suck.
|
|
window's monitor from its current position, but from the new position instead. move client_monitor()'s logic into screen, more generically, and let client_configure_full use that
|
|
this was a pretty invasive change in client.c though, so it may break things?
it did expose some bugginess in client_calc_layer, which is now better than ever, hopefully there isn't more to be found.
|
|
request it
|
|
all related to _NET_WM_USER_TIME and focus stealing prevention
a) add launcher startup notification. this means when you run something from
the openbox menu or a key/mouse binding, that startup notification will go
on in openbox and other applications like your panel or something
b) add the _NET_WM_USER_TIME property for windows
c) use the _NET_WM_USER_TIME data and startup notification to prevent focus
stealing.
d) cookie party !! ! all are invited.
e) oh yeah, and pass around timestamps for a lot more things. like, when you
run an action, send the timestamp for the event that is running the action.
this is important for startup notification. this also affects menus.
f) yes.. cookies..
would it be a good idea to disable focus stealing prevention if a window takes
too long to load? i mean.. maybe after a certain length of time, a user can't be
expected to not do anything in any other windows, but would they still want the
new application to focus then? HMM. open question i guess..
|
|
focus new windows if the user is doing something in another window since it launched. If we can tell when it launched, either from the _NET_WM_USER_TIME or from startup notification.
|