summaryrefslogtreecommitdiff
path: root/openbox/client.c
AgeCommit message (Collapse)Author
2007-03-24kill window title numbering...Dana Jansens
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
2007-03-19not passing timestamps sometimes and not others. set event_curtime when ↵Dana Jansens
client messages provide a timestamp.
2007-03-17oops, logic errorDana Jansens
2007-03-16fix for bug introduced in revision 5643. logical size is supposed to be ↵Dana Jansens
updated only when the window is resized.
2007-03-14oh, 2 things in this commit..Dana Jansens
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.
2007-03-14move stuff around in client_unmanage to maybe make closing windows a bit nicerMikael Magnusson
2007-03-14refix for managing iconic windows, without having the frame map which caused ↵Dana Jansens
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.
2007-03-14a) fix resizerelative moving windows when they reach their minimum size do ↵Dana Jansens
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)
2007-03-14less wasted updates of wm_stateDana Jansens
2007-03-13comparing strings to random locations in memory is probably not what we ↵Mikael Magnusson
wanted to do
2007-03-13always unfocus the window when it disappears, no special cases.. (except ↵Dana Jansens
unmanage)
2007-03-13set IconicState on windows that are not visible always. this means windows ↵Dana Jansens
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.
2007-03-13save and restore pre-maximized/fullscreen sizes properlyDana Jansens
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..
2007-03-12fallback is still getting x errors. instead, fallback when the client ↵Dana Jansens
iconifies, and don't fallback when nothing has focus, send it to where we can control things though.
2007-03-12don't validate inside client_focus. instead, validate before you call it!Dana Jansens
2007-03-12validate clients before trying to focus them in fallbackDana Jansens
also validate before trying to set the focus on a window this should fix those crashes, and should just be better over all
2007-03-12i rewrote handling of focus events. this is pretty much based on blackbox's ↵Dana Jansens
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.
2007-03-12Rewrite the stacking code. It's a lot faster now, I should think. It's def a ↵Dana Jansens
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.
2007-03-11We were grabbing SubstructureNotifyMask on the root window. I don't know ↵Dana Jansens
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.
2007-03-11extra braces.. why does the world hate me so?Dana Jansens
2007-03-11.. i am pretending to be mika :D :D ok this time for realDana Jansens
2007-03-11oh.. wasted verbosity.. *strums guitar*Dana Jansens
2007-03-11rewrite the focus steal prevention code to clean it up hopefully a bit. also ↵Dana Jansens
don't steal focus from globally active focus model clients
2007-03-11Honor transient_for=Root, even thought this is crap and breaks some KDE ↵Dana Jansens
stuff. Also include a big comment as to why this is suck.
2007-03-11client_configure_full is trying to move a window, it shouldn't determine the ↵Dana Jansens
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
2007-03-11stacking has been made more reliable with groups and group transients.Dana Jansens
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.
2007-03-11make _NET_ACTIVE_WINDOW requests look at the timestamp when the user didn'tDana Jansens
request it
2007-03-11wow... this is a big commit...Dana Jansens
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..
2007-03-11add the _NET_WM_USER_TIME property support. When focus_new is enabled, don't ↵Dana Jansens
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.
2007-03-11remove the kde icon hint, they use the EWMH icon nowDana Jansens
2007-03-101) Remove support for the Urgent hint. This will no longer do anything ↵Dana Jansens
within Openbox 2) Add support for _NET_WM_STATE_DEMANDS_ATTENTION. Yay!
2007-03-10make startup notification a little more robust. obconf is just broken, betweenDana Jansens
the application and it's .desktop.
2007-03-10no longer honor transient_for = None or Root. it violates the ICCCM and is ↵Dana Jansens
causing problems. there are proper ways to make group transient windows with the EWMH.
2007-03-10more cleverness for window placing.Dana Jansens
make sure its 10% on the screen in some direction always.. but if the application is placing itself, make sure its on the screen entirely, and also put it entirely on one monitor if you have xinerama. if it's bigger than the monitor's space though, it won't do anything with it..
2007-03-10let you put windows with the titlebar off screen.. for mikachu.Dana Jansens
but also don't let applications put themselves under the struts!
2007-03-04oops... I'm combining two different things in this commit... so I'll try be ↵Dana Jansens
clear 1. when another wm requests to replace openbox, openbox exits. but the SM will just restart openbox unless we tell it not to. so now ob_exit_replace() will change the session manager's view of openbox to not restart it. that way the new WM will be able to run. 2. allow windows to move themselves off of the screen 90% of the way, if they really want to. but only 90% to the left, right, and bottom of the screen. it won't let the app move off the top of the screen on its own at all now, since hiding the titlebar on you without you being a part of the process is pretty darn evil! this is really to address bug # 2982 - for the tilda application. but i guess if windows really want to move off the screen, who's to say no? also, every other window manager will let them - except metacity won't let them on the left/top side of the screen.
2007-03-04better string matching for duplicate title numbering. this will check ↵Dana Jansens
against the whole window's title. it used to check less than the full length sometimes. thanks to logan for patches and ideas!
2007-03-03pretty bracketsDana Jansens
2007-03-02fix for per-application focus settings. properly use all the possible values ↵Dana Jansens
(1, 0, and -1)
2007-03-02only update the screen areas when a window actually has a strut (or when the ↵Dana Jansens
strut changes), don't waste extra calls to screen areas, because it makes people redraw when they don't need to
2007-03-02support clients which use true transparency 32-bit visuals.Dana Jansens
this requires that when a client is using a 32-bit visual, we have to make the frame windows that sit underneath it to use the same visual (and a colormap which matches it)
2007-03-02this includes a number of things since my magnificent return....Dana Jansens
1. some random compiling/style cleanups 2. some bigfixes - mislogic in per-window-settings and focusing new windows - use client_can_focus rather than checking variables for directional focus - MAYBE fix all those lock-ups forever. using event_curtime (a new variable) now instead of event_lasttime. event_lasttime is still used however when the event being processed did not have a time associated with it. this may or may not be a problem, and will be seen. 3. um.. i forget 4. oh yeah, 3rd party docks are now treated like the internal ob dock irt focus. that is, clicking on them won't pass them focus. this is going to be ratified as expected behavior in the wm-spec just now. if docks/panels want focus they can request it with _net_active_window, and then they can have all the focus they want! one day alt-tabbing around dock windows might be nice. but not until the ob dock is moved out into a separate application. going to have to add a wmapp selection and stuff for that though... ugly. who uses wmdockapps anymore !? someone must.. *sigh*
2006-11-1580 colsMikael Magnusson
2006-10-31dont use nonexisting functionsMikael Magnusson
2006-10-31Add MoveFromEdge* actions, shorten client_directional_edge_search with some ↵Mikael Magnusson
handy #defines
2006-09-12dont use the keepBorder option for mwm hinted windows after all, but do ↵Mikael Magnusson
honor the mwm_decor_border hint instead
2006-08-31oops, added borders to windows when keepborder was on and they didnt have ↵Mikael Magnusson
one to start with, ie docks etc
2006-08-22update copyright step 1Mikael Magnusson
2006-08-21maybe fix transients placed offscreen under certain conditionsMikael Magnusson
2006-08-19a more proper fix for the client list menu trying to activate a closed ↵Mikael Magnusson
client, no difference on end result