Dana Jansens
08e42acaad
animate iconify/reestore. yeah.
2007-05-05 05:58:35 +00:00
Dana Jansens
fde5ca09e9
when restoring from show-desktop mode because a window is going to be focused, then don't restore focus how it was before showing the desktop.
2007-05-05 02:48:39 +00:00
Dana Jansens
fce7d9b21e
and some more transient fixes
2007-05-05 01:17:05 +00:00
Dana Jansens
1046c19fda
more fixes for the transient tree
2007-05-05 01:12:59 +00:00
Dana Jansens
0c15af505f
unused variable
2007-05-05 00:48:51 +00:00
Dana Jansens
2713831371
missing paranthesis
2007-05-04 23:30:13 +00:00
Dana Jansens
431035df66
continuation of r6039 in all respects
2007-05-04 23:15:08 +00:00
Dana Jansens
7ff21ad74f
add the maginificent client_update_transient_tree.
...
add a whole lot of comments ! i think like half of this commit is comments
speed up mapping windows a little! less re-updating of the transient info by far.
and... yeah fix the crash created from r6035.
2007-05-04 22:50:53 +00:00
Dana Jansens
15ec358151
group transients werent getting added to their parents
2007-05-04 16:14:16 +00:00
Dana Jansens
b5161f8032
revert r6029, as it didnt fix anything.
...
however this patch does fix the aforementioned problem.
actions need some reworking... yeah... later...
2007-05-04 07:21:22 +00:00
Dana Jansens
a823e4786e
dont move windows away from omnpresentness when deiconifying them
2007-05-04 07:19:21 +00:00
Dana Jansens
e84fb1b052
drop the DoNotPropogate thing. metacity doesn't set it at all, and i cant tell any difference in the events generated without it.
...
grab mouse buttons on the client window itself for client bindings. this fixes the weird "click and drag doesnt work when the window is focused" behavior ive been seeing with kdesktop. hooray !
2007-05-04 04:47:43 +00:00
Dana Jansens
07af4a6184
some improvements on how group transients get their transient pointers, needed after r6022.
2007-05-04 04:25:44 +00:00
Dana Jansens
147f83fe3c
this is gross... i think it can go away from other changes... if openbox goes into infinite loops.. then it needs to come back !
2007-05-04 04:08:31 +00:00
Dana Jansens
02dda1ef65
set the usertime on windows if they dont provide one, to something reasonable.
2007-05-04 04:06:43 +00:00
Dana Jansens
b71f1cd6a5
from r6017, we no longer need to fallback in client_unmanage. yay
2007-05-04 02:48:23 +00:00
Dana Jansens
00bf97aecd
not much.. some debugs and a nicer if statement
2007-05-04 02:47:10 +00:00
Dana Jansens
5784f11132
add the notion of "application windows" meaning normal or dialog type windows.
...
let you alt-tab to non-application windows when they dont have an application window in their group
2007-05-03 20:57:40 +00:00
Dana Jansens
9c19d7f677
find_on_screen takes client width/height, not frame
2007-05-03 03:18:56 +00:00
Dana Jansens
d7108df02b
when deiconifying, deiconify all transients, not just direct ones
2007-05-03 00:50:40 +00:00
Dana Jansens
80117db6c4
turn on demands_attention when urgent gets set, and turn it off when urgent is removed, for those apps that think it is 1917 or something
2007-05-02 23:03:43 +00:00
Dana Jansens
97cbacd9e4
make keeping windows on screen much more clever
2007-05-02 02:03:06 +00:00
Dana Jansens
564b727966
fix drawcontent=no resizing
2007-05-01 12:17:37 +00:00
Dana Jansens
cad10d8b6d
some old changes to grav.c test, it wasn't a valid test before.
...
when a window gets reconfigured, try keep it on the monitor if it was before.
2007-05-01 05:02:26 +00:00
Dana Jansens
55d2916c1e
a whole lot of changes to the moving/resizing code. it was broken for non-northwest gravities. now it is not. at least, that is the idea.
2007-05-01 04:46:29 +00:00
Dana Jansens
1c4c2b92a0
focus_client is already nulled from the fallback, and use client_focused for niceness in the future
2007-04-26 06:14:09 +00:00
Dana Jansens
b673823d0b
have to fallback in client_unmanage, until we figure out a way to hear those focusin events without conflicting screens
2007-04-26 06:10:13 +00:00
Dana Jansens
d9b25d4884
add group transients to other transients who arent group transients. is that english? YEP
2007-04-26 02:32:50 +00:00
Dana Jansens
e896709c90
when windows disappear dont move focus from enter event, ever.
2007-04-26 02:21:27 +00:00
Dana Jansens
f6b049cd38
pointer type changed a long time ago
2007-04-25 00:50:20 +00:00
Mikael Magnusson
fb2493115f
only grab keybinds on the root window, not every client window
2007-04-24 21:45:43 +00:00
Dana Jansens
d19c184b2d
set the client's user_time when it gets activated
2007-04-24 19:55:48 +00:00
Dana Jansens
0116d82463
don't activate and change desktops if the client's not on the current desktop and its user_time is older than the last time you changed desktops
2007-04-24 19:53:50 +00:00
Dana Jansens
ca8665e309
fix a comment
2007-04-24 19:26:48 +00:00
Dana Jansens
8446e50b7a
use client_activate to activate newly mapping windows. this means that if a window maps on another desktop and is going to be activated, you will end up on that desktop
2007-04-24 19:20:10 +00:00
Dana Jansens
ac241a8235
set the default icon onto windows which don't provide one
2007-04-24 15:56:37 +00:00
Dana Jansens
0771964c0f
set the max settings properly, was setting max_vert for both.
...
make sure the desktop property is set when per-app settings change it
2007-04-24 14:58:29 +00:00
Mikael Magnusson
e86900bd53
fix resizing when drawContents is off, and I think an ifdef was a bit too high up
2007-04-24 12:18:53 +00:00
Dana Jansens
c6fe4f8d8f
focus_order_remove is called in a few places. move the check for unsetting focus_client into client_unmanage.
2007-04-24 06:41:04 +00:00
Dana Jansens
ad852b6b56
add support for _NET_WM_SYNC_REQUEST
2007-04-24 06:30:16 +00:00
Dana Jansens
7ae95e4660
save windows' colormaps rather than querying them from the server every time you focus it
2007-04-24 01:29:53 +00:00
Dana Jansens
3a91527fdf
hm, that was a silly error. the propogate mask shouldnt get the Hint thing in it.
2007-04-24 01:08:09 +00:00
Dana Jansens
a488360f48
add the PointerMotionHintMask everywhere, we dont need every mouse event
2007-04-24 01:00:27 +00:00
Dana Jansens
268c87ed9e
in shrinking resize the frame before the client
2007-04-24 00:02:51 +00:00
Dana Jansens
5316bc6c3e
1. remove some old event handling that was not used at all. yay less bandwidth.
...
2. make the client padding color show during resizes with drawContents off
2007-04-24 00:00:11 +00:00
Dana Jansens
1a005d7291
place transients without a parent in the middle of the screen
...
dont use non-normal windows as parents
2007-04-23 23:46:13 +00:00
Dana Jansens
b4eecc51b5
focus_client was becoming invalid if the focused client was unmanaged.
2007-04-23 23:11:33 +00:00
Dana Jansens
9f11e2af6b
cycling between dock windows now possible with the <panels>yes</panels> option
2007-04-23 22:40:33 +00:00
Mikael Magnusson
9e7a240dfd
include the header that has gethostname
2007-04-23 19:02:33 +00:00
Mikael Magnusson
141c249b8c
show the hostname of forwarded clients in the titlebar
2007-04-23 18:46:19 +00:00
Dana Jansens
a82c1efeed
wasteful syncing
2007-04-23 02:00:33 +00:00
Dana Jansens
7e0d660b8b
stop listening to events on clients that are being unmanaged before generating new events
2007-04-22 22:56:53 +00:00
Dana Jansens
037654f3f8
use ignore enters instead of removing them from the queue
2007-04-22 16:48:35 +00:00
Dana Jansens
27773e1cb7
don't grab the pointer during interactive events. this allows you to alt-tab during a dnd.
2007-04-22 15:22:25 +00:00
Dana Jansens
a70633d42a
eat enter events after unmanaging a window
...
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)
2007-04-22 13:53:28 +00:00
Dana Jansens
6e7abeb860
engrish
2007-04-22 04:35:23 +00:00
Dana Jansens
8a972b3879
ignore BadMatch errors that can't be avoided
2007-04-21 21:36:02 +00:00
Dana Jansens
0e9bd66b75
fixes for transients
...
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
2007-04-21 21:32:21 +00:00
Dana Jansens
d713bdf462
remove the client_time_heap thing. actually its better to just use the user_time on the currently focused window I think. that will handle panels and things too.
2007-04-20 05:22:23 +00:00
Dana Jansens
90cd9c6219
get rid of global client_last_user_time variable.
...
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.
2007-04-18 19:22:59 +00:00
Dana Jansens
64dda2375e
saved session information overrides per-app settings, because that's how you set it up in the session
2007-04-12 14:54:54 +00:00
Dana Jansens
33c469f453
set the desktop from per-app-settings properly, i think.
...
also fix a compiler warning.
2007-04-12 14:47:54 +00:00
Dana Jansens
7a1a6da849
better synthetic configurenotify handling. in particular..
...
http://bugzilla.gnome.org/show_bug.cgi?id=399552
on unmap, when we move the client window, we need to send a synthetic configurenotify.
2007-04-12 14:44:17 +00:00
Dana Jansens
c03c08415f
don't fallback when a window is hidden right away, it's redundant, we'll get a focusout for the window after the unmapnotify anyways.
...
show new windows when switching desktops before hiding the old windows.
2007-04-12 02:26:26 +00:00
Dana Jansens
7059cde13b
http://mail.gnome.org/archives/wm-spec-list/2006-May/msg00000.html
...
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.
2007-04-05 03:59:24 +00:00
Dana Jansens
0eaf2d15e7
fully maximize windows all the time. size increments are preferred sizes not required ones.
...
-- http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.2.3
2007-03-30 04:37:53 +00:00
Dana Jansens
00ddaf06bb
can't use (unsigned)-1 for a max time, because timestamps wraparound and stuff. user the last_user_time as a default for new windows instead.
2007-03-28 19:57:07 +00:00
Dana Jansens
33cc572402
drop some wasted client_validates.
2007-03-28 02:00:10 +00:00
Dana Jansens
d20f84f5de
more handling time wraparounds
2007-03-28 01:53:37 +00:00
Dana Jansens
339d767044
handle time wrapping around.
2007-03-28 01:52:06 +00:00
Dana Jansens
eb2a0feb01
watch for reverttoparent reverting to the root window, which will create a DetailInferior focusin event on root.
...
adding some debug messages also which I am using..
2007-03-24 23:19:45 +00:00
Dana Jansens
c4732aeed2
2007-03-24 17:17:02 +00:00
Dana Jansens
e77353f0cd
clean up the title getting function
2007-03-24 17:06:19 +00:00
Dana Jansens
4c2b16e72d
kill window title numbering...
...
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-24 17:01:40 +00:00
Dana Jansens
fb3d2033ba
not passing timestamps sometimes and not others. set event_curtime when client messages provide a timestamp.
2007-03-19 17:59:16 +00:00
Dana Jansens
5fa443efc8
oops, logic error
2007-03-17 20:06:16 +00:00
Dana Jansens
73dac2b9b9
fix for bug introduced in revision 5643. logical size is supposed to be updated only when the window is resized.
2007-03-16 19:14:53 +00:00
Dana Jansens
adc5675823
oh, 2 things in this commit..
...
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-14 15:51:21 +00:00
Mikael Magnusson
768ce7b456
move stuff around in client_unmanage to maybe make closing windows a bit nicer
2007-03-14 14:17:31 +00:00
Dana Jansens
5f7ffb00ba
refix for managing iconic windows, without having the frame map which caused 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-14 13:58:36 +00:00
Dana Jansens
e2521f5c64
a) fix resizerelative moving windows when they reach their minimum size do 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-14 03:45:56 +00:00
Dana Jansens
594648729f
less wasted updates of wm_state
2007-03-14 02:07:30 +00:00
Mikael Magnusson
53109b7592
comparing strings to random locations in memory is probably not what we wanted to do
2007-03-13 12:34:58 +00:00
Dana Jansens
a9910e520b
always unfocus the window when it disappears, no special cases.. (except unmanage)
2007-03-13 04:15:25 +00:00
Dana Jansens
270a5b25df
set IconicState on windows that are not visible always. this means windows 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-13 04:04:13 +00:00
Dana Jansens
7f58bd9eaa
save and restore pre-maximized/fullscreen sizes properly
...
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-13 02:29:08 +00:00
Dana Jansens
d47c6a0979
fallback is still getting x errors. instead, fallback when the client iconifies, and don't fallback when nothing has focus, send it to where we can control things though.
2007-03-12 17:31:11 +00:00
Dana Jansens
85a1a0cfb3
don't validate inside client_focus. instead, validate before you call it!
2007-03-12 06:04:00 +00:00
Dana Jansens
6b7cc88c9d
validate clients before trying to focus them in fallback
...
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-12 05:57:30 +00:00
Dana Jansens
c018e21220
i rewrote handling of focus events. this is pretty much based on blackbox's 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-12 05:25:34 +00:00
Dana Jansens
d33f44cd86
Rewrite the stacking code. It's a lot faster now, I should think. It's def a 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-12 02:24:40 +00:00
Dana Jansens
e2b3a32aed
We were grabbing SubstructureNotifyMask on the root window. I don't know 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-11 22:16:42 +00:00
Dana Jansens
cbfa27759d
extra braces.. why does the world hate me so?
2007-03-11 19:27:44 +00:00
Dana Jansens
d9601bc196
.. i am pretending to be mika :D :D ok this time for real
2007-03-11 19:27:16 +00:00
Dana Jansens
d98a6183a3
oh.. wasted verbosity.. *strums guitar*
2007-03-11 19:26:28 +00:00
Dana Jansens
e714fa7351
rewrite the focus steal prevention code to clean it up hopefully a bit. also don't steal focus from globally active focus model clients
2007-03-11 19:25:57 +00:00
Dana Jansens
6714a0e2ca
Honor transient_for=Root, even thought this is crap and breaks some KDE stuff. Also include a big comment as to why this is suck.
2007-03-11 19:15:28 +00:00
Dana Jansens
7229bea3c6
client_configure_full is trying to move a window, it shouldn't determine the 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-11 17:34:07 +00:00
Dana Jansens
62a39c4c70
stacking has been made more reliable with groups and group transients.
...
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-11 16:58:19 +00:00
Dana Jansens
2c98204dfe
make _NET_ACTIVE_WINDOW requests look at the timestamp when the user didn't
...
request it
2007-03-11 14:17:14 +00:00
Dana Jansens
19b480058e
wow... this is a big commit...
...
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-11 04:44:15 +00:00
Dana Jansens
9d6e390765
add the _NET_WM_USER_TIME property support. When focus_new is enabled, don't 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-11 02:06:34 +00:00
Dana Jansens
bd19fd06db
remove the kde icon hint, they use the EWMH icon now
2007-03-11 00:59:13 +00:00
Dana Jansens
f6265e82e6
1) Remove support for the Urgent hint. This will no longer do anything within Openbox
...
2) Add support for _NET_WM_STATE_DEMANDS_ATTENTION. Yay!
2007-03-10 23:57:33 +00:00
Dana Jansens
ec67e96583
make startup notification a little more robust. obconf is just broken, between
...
the application and it's .desktop.
2007-03-10 22:52:50 +00:00
Dana Jansens
49dd40d99f
no longer honor transient_for = None or Root. it violates the ICCCM and is causing problems. there are proper ways to make group transient windows with the EWMH.
2007-03-10 20:52:04 +00:00
Dana Jansens
4fa19b5985
more cleverness for window placing.
...
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-10 01:08:19 +00:00
Dana Jansens
ae246097a5
let you put windows with the titlebar off screen.. for mikachu.
...
but also don't let applications put themselves under the struts!
2007-03-10 00:44:43 +00:00
Dana Jansens
86b809df8a
oops... I'm combining two different things in this commit... so I'll try be 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-04 09:01:52 +00:00
Dana Jansens
c07095acb7
better string matching for duplicate title numbering. this will check 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-04 07:54:21 +00:00
Dana Jansens
65f0c70851
pretty brackets
2007-03-03 03:53:10 +00:00
Dana Jansens
4084f5d82d
fix for per-application focus settings. properly use all the possible values (1, 0, and -1)
2007-03-02 22:44:38 +00:00
Dana Jansens
140c5313cf
only update the screen areas when a window actually has a strut (or when the strut changes), don't waste extra calls to screen areas, because it makes people redraw when they don't need to
2007-03-02 15:19:39 +00:00
Dana Jansens
80a6f06c0a
support clients which use true transparency 32-bit visuals.
...
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-02 06:01:16 +00:00
Dana Jansens
78af5d15e9
this includes a number of things since my magnificent return....
...
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*
2007-03-02 02:23:00 +00:00
Mikael Magnusson
d3d4aa2987
80 cols
2006-11-15 21:12:06 +00:00
Mikael Magnusson
59d35252dd
dont use nonexisting functions
2006-10-31 14:40:32 +00:00
Mikael Magnusson
b18846db69
Add MoveFromEdge* actions, shorten client_directional_edge_search with some handy #defines
2006-10-31 03:33:21 +00:00
Mikael Magnusson
b9532883a2
dont use the keepBorder option for mwm hinted windows after all, but do honor the mwm_decor_border hint instead
2006-09-12 20:26:00 +00:00
Mikael Magnusson
96eab1423f
oops, added borders to windows when keepborder was on and they didnt have one to start with, ie docks etc
2006-08-31 13:43:19 +00:00
Mikael Magnusson
4d50b21835
update copyright step 1
2006-08-22 16:37:35 +00:00
Mikael Magnusson
c234ed9ecd
maybe fix transients placed offscreen under certain conditions
2006-08-21 20:39:42 +00:00
Mikael Magnusson
d77c8f62f2
a more proper fix for the client list menu trying to activate a closed client, no difference on end result
2006-08-19 20:34:27 +00:00
Mikael Magnusson
3b56988069
dont flicker when setting desktop by per app settings
2006-08-19 17:55:31 +00:00
Mikael Magnusson
39f6b8ca71
forgot to check if perapp settings said to put window on all desktops
2006-08-19 17:50:12 +00:00
Mikael Magnusson
34269a34e1
lets not change the stacking before we add the window to the stacking stack
2006-08-19 15:35:23 +00:00
Mikael Magnusson
1de9c1901c
fix a silly copy paste bug, titlenumber should now be disableable
2006-08-18 21:23:02 +00:00
Mikael Magnusson
83a0303dd7
add option titleNumber in theme section to disable the little [x] that you get after identical window titles
2006-08-16 19:32:13 +00:00
Mikael Magnusson
8eea64ca08
adjust logic to be... logical
2006-08-16 18:11:47 +00:00
Mikael Magnusson
5b288939ab
try utf8 for WM_NAME if locale fails, really the _locale functions in prop.c are busted and should be fixed but i have no idea how.
2006-08-16 16:51:00 +00:00
Mikael Magnusson
dce6247e69
really fix focus_last?
2006-08-04 19:56:42 +00:00
Mikael Magnusson
97719044b1
s/_/./
2006-08-02 17:40:23 +00:00
Mikael Magnusson
6a7c0b893a
s/self/settings/
2006-08-02 17:37:05 +00:00
Mikael Magnusson
05c0dbfedf
be paranoid about programs setting 0 resize increments, which results in a divide by zero, which is in turn bad
2006-08-02 16:36:29 +00:00
Mikael Magnusson
d2fb93e8af
remove bogus check for handle width in client_setup_decor_and_functions resulting in handles not being drawn if a theme with handle width = 0 is used when that function is called for a window and a theme with handle with > 0 is then loaded.
2006-08-02 06:07:12 +00:00
Mikael Magnusson
9fe211a1ca
remove an old comment
2006-08-01 23:59:27 +00:00
Mikael Magnusson
e0aa54a891
rip out the VIDMODE extension stuff. this was only used to size fullscreen windows to the viewport, i doubt anyone is actually using it and it interacts very badly with xinerama.
2006-06-11 09:47:53 +00:00
Mikael Magnusson
0f80c6ab40
not surprisingly, there was a typo
2006-06-09 14:53:36 +00:00
Mikael Magnusson
e72a1232fa
if this works i will be a bit amazed, add class matching, and allow to match either name or class or both
2006-06-09 14:52:06 +00:00
Mikael Magnusson
d4b7340454
changing props need client_change_state
2006-06-09 14:29:54 +00:00
Mikael Magnusson
94a0ea2150
fix2
2006-06-09 14:19:59 +00:00
Mikael Magnusson
2658610ae2
fix
2006-06-09 14:17:15 +00:00
Mikael Magnusson
ff04e2c9a9
add the rest of the possible states to per app settings, and fix some mem leaks in the code that _set_ the per app list
2006-06-09 14:14:17 +00:00
Mikael Magnusson
8af51d8a1b
add role matching to per app settings and fix a small memleak in the code that frees the per app list
2006-06-09 12:47:48 +00:00
Mikael Magnusson
c63938f765
fix
2006-06-08 11:37:51 +00:00
Mikael Magnusson
de1559a094
move stuff around some more
2006-06-08 11:36:43 +00:00
Mikael Magnusson
f80ab241f3
some notes to self
2006-06-08 11:05:29 +00:00
Mikael Magnusson
ed61a94ca5
per app settings
2006-06-08 10:18:31 +00:00
Mikael Magnusson
ad215303e7
fix #2670 (hilight first entry in menus) and respect keepBorder setting when removing borders from mwm hints
2006-04-20 18:36:23 +00:00
Mikael Magnusson
1fad2da07f
more 64 bit fixes
2005-10-07 17:00:35 +00:00
Mikael Magnusson
9df57ff1b5
I meant to check for windows placed by programs, not windows not placed by the user. Now checks for windows placed by programs and not placed by user. This excludes placement schemes which the former check didn't, resulting in some brokenness, particularly with xinerama.
2005-09-13 12:13:13 +00:00
Mikael Magnusson
829e746b4d
fix programs showing their child windows outside the screen, but retain the possibility to put windows slightly offscreen with the -geometry argument (which is why i broke it in the first place)
2005-08-11 13:23:59 +00:00
Mikael Magnusson
03cad5d97c
add a (temporary?) check to client_activate to make client_list_menu not crash openbox when selecting a window that has closed since the menu opened
2005-07-25 14:15:16 +00:00
Mikael Magnusson
6ec1881579
c++ comments
2005-07-14 13:23:05 +00:00
Mikael Magnusson
cab723fac9
fix transparent terminals not updating when toggledecoring them
2005-03-25 23:00:20 +00:00
Mikael Magnusson
e74fbdaa0e
revert a commit xor made in 2003 that always annoyed me, now docks (panels) go in the same layers as normal windows again. docks that dont specify layer go in the ABOVE layer and those that specify BELOW get put in the NORMAL layer.
2005-02-06 16:00:24 +00:00
Mikael Magnusson
ac416fd27e
testing failed, hopefully this is reverting to the right place
2005-02-06 02:18:06 +00:00
Mikael Magnusson
3f40d6e762
more testing
2005-02-06 02:06:57 +00:00
Mikael Magnusson
52c345c300
try moving the move_onscreen with the rude into the place routine so it only gets called if a window doesn't specify a position
2005-02-06 01:43:37 +00:00
Mikael Magnusson
60565bcba8
okay so that's why it didn't use move_onscreen
2005-02-06 01:16:00 +00:00
Mikael Magnusson
ef042d220b
test some stuff
2005-02-06 00:50:43 +00:00
Mikael Magnusson
943dd68152
the xinerama patch from john russell, modified a bit and merged the move_onmonitor with the already existing move_onscreen stuff, not sure if it actually works on xinerama since i dont have it.
2005-02-05 23:26:16 +00:00
Mikael Magnusson
4f9ec4cbdb
grab the mouse buttons and keyboards keys on clients before showing them to avoid the situation where a grabbed key goes to a client without being seen by openbox, hopefully has no side effects but probably does
2004-12-30 15:37:30 +00:00
Mikael Magnusson
349990a3b5
eek, a patch had a tab in it
2004-10-21 20:54:59 +00:00
Mikael Magnusson
f825b13b85
patch to let wmctrl and others set _NET_WM_STATE_HIDDEN to minimize windows, by Timo Hirvonen
2004-10-08 13:56:39 +00:00
Mikael Magnusson
c02f68499f
option to make dragging and findedge ignore windows on lower layers
2004-09-04 19:45:38 +00:00
Mikael Magnusson
8ba619d5f1
finding edges and switching directional focus was broken from omnipresent windows. changed c->desktop to screen_desktop seems to work fine so far.
2004-06-14 12:26:35 +00:00
Mikael Magnusson
cabcea2002
okay, so maybe i should try compiling things. lets see if i can get away with not testing it
2004-03-31 07:40:06 +00:00
Mikael Magnusson
89f223e253
this is not so nice
2004-03-30 22:32:12 +00:00
Mikael Magnusson
a70e22c557
nothing to see here, move along
2004-03-30 22:24:15 +00:00
Mikael Magnusson
f870d32397
two hands raised, keepBorder added to <theme> section
2004-03-21 20:02:47 +00:00
Mikael Magnusson
b2b8ad92bf
update copyright notices
2004-03-21 11:57:31 +00:00
Mikael Magnusson
3fadb639fa
pasted that a bit too far down yesterday
2004-03-21 11:38:21 +00:00
Mikael Magnusson
335e8acbfc
yay no tabs in the source
2004-03-21 01:03:00 +00:00
Mikael Magnusson
e3786e64fb
typo fix a comment
2004-03-20 23:52:38 +00:00
Mikael Magnusson
07dd2c6442
fix reversed variable name and add a little comment to the magic menu code
2004-03-20 23:40:29 +00:00
Mikael Magnusson
cd0204d626
fullscreen overrides aspect hints (because i say so)
2004-03-20 21:38:04 +00:00
Mikael Magnusson
77c744f285
raise your hand if you liked the onepixel border and i'll add an option for it somewhere
2004-03-20 21:35:44 +00:00
Mikael Magnusson
2a8ede0004
alert windows can be titleless, maybe all titleless windows should be empty, i dunno
2004-03-20 21:34:29 +00:00
Mikael Magnusson
d50f491716
this might fix focusLast which was previously borken when closing a window and the pointer was on it and then going onto another from the close. er, yeah.
2004-02-25 19:07:40 +00:00
Dana Jansens
a6e4aba806
make all dialog typed windows transient for their group if they dont specify a WM_TRANSIENT_FOR hint.
2003-12-22 17:24:51 +00:00
Dana Jansens
5a1ad84c05
use gpointer for void*
2003-10-25 19:39:19 +00:00
Dana Jansens
16dc1c48c8
oops typo of doom
2003-10-25 19:30:48 +00:00
Dana Jansens
174de91c34
use g_[s]list_next/previous consistantly, and check for "it" instead of "it != NULL" consistantly. props to Logan again :)
2003-10-25 19:27:09 +00:00
Dana Jansens
5cac540f56
add to teh focus order before the call to change_state, since this can remove/add to the focus order, and then we're in there twice
2003-10-18 22:09:29 +00:00
Dana Jansens
5749f109f9
both must be normal to inherit above/below
2003-10-15 16:14:29 +00:00
Dana Jansens
c30df2e750
dont let clients be above and below
2003-10-15 05:50:56 +00:00
Dana Jansens
415f2cce27
only inherit layer when both windows are the same normal status
2003-10-15 04:56:32 +00:00
Dana Jansens
740c5b2a20
consistant glib type usage
2003-10-15 03:59:35 +00:00
Dana Jansens
c9233ddb23
unmap and map the client window when the frame is hidden/shown
2003-10-15 03:01:34 +00:00
Dana Jansens
37c9f2d961
fix _NET_WM_STRUT oldschool support
2003-10-14 07:23:42 +00:00
Dana Jansens
2bf58d8fb3
dont put windows below by default
2003-10-13 03:47:52 +00:00
Dana Jansens
420e6f87a6
inherit above/below more carefully
2003-10-13 02:52:59 +00:00
Dana Jansens
b9b3123305
when getting the state, grab the above/below from the max amongst other members of the client's group
2003-10-13 01:10:03 +00:00
Dana Jansens
cf397b0e60
smarter picking of heads for client windows
2003-10-11 08:24:49 +00:00
Dana Jansens
f5f59cea71
raise windows when they change modality
2003-10-11 08:21:51 +00:00
Dana Jansens
5592351585
give clients being restored from a session a little more flexibility in lpacement so they will go back where they were when saved
2003-10-11 07:35:05 +00:00
Dana Jansens
469b0c1ca9
handle case where session saves a 0 width/height (for maximized windows!)
2003-10-11 03:44:05 +00:00
Dana Jansens
c8678108eb
indenting
2003-10-10 08:28:18 +00:00
Dana Jansens
1be38a0418
set the defaults for typed windows in client_get_all:
...
desktop types get put on all desktops
dock types get put in the ABOVE layer
2003-10-10 08:22:14 +00:00
Dana Jansens
e1eff99176
do client_raise after client_focus for new windows
2003-10-10 06:00:27 +00:00
Dana Jansens
6a00a44b99
indenting
2003-10-10 05:36:02 +00:00
Dana Jansens
b84a934ab7
provide function to tell if a client has any group siblings
2003-10-09 19:29:10 +00:00
Dana Jansens
bb52941999
cancel focus delays when the user runs a focus (or focus cycle) action, and when focusing new windows
2003-10-09 18:49:14 +00:00
Dana Jansens
5c390b9344
indenting
2003-10-09 16:46:54 +00:00
Dana Jansens
b7d2693742
dont give decorless windows a border when toggling decorations
2003-10-09 16:36:28 +00:00
Dana Jansens
b9d47c49d6
for dock windows, honor both the above and below states, keeping docks above and below *all* normal windows though (even 'above'/'below' ones). if the dock doesn't specify then it will stack along with normal windows.
2003-10-09 16:34:37 +00:00
Dana Jansens
440b862204
indenting
2003-10-08 18:27:30 +00:00
Dana Jansens
b968a7ac19
indenting
2003-10-08 18:27:10 +00:00
Dana Jansens
fb8a9a6363
indenting
2003-10-08 18:23:48 +00:00
Dana Jansens
f55766cc55
save premax values properly, individually for each direction
2003-10-06 17:33:23 +00:00
Dana Jansens
c4fcfc07e1
dont resize the window when restoring session state if the sizes are invalid
2003-10-03 07:33:27 +00:00
Dana Jansens
242dc35a36
indenting
2003-10-03 04:27:44 +00:00
Dana Jansens
c88e66b8ff
use frame->visible instead of the desktop number
2003-10-01 17:51:20 +00:00
Dana Jansens
f9c659c12c
fix resizing to 0 from aspect ratios
2003-09-28 07:38:55 +00:00
Dana Jansens
a434669d17
remove debug prints
2003-09-28 06:48:35 +00:00
Dana Jansens
f6ba1f27b9
halfway through client changes but...
...
should fix crashes irt actions in the action queue for clients that have been destroyed. now those actions are skipped or performed without a client as possible.
2003-09-28 06:31:00 +00:00
Dana Jansens
e30ae5696f
remove from parents when changing groups
2003-09-27 17:57:02 +00:00
Dana Jansens
0dfff40a30
formatting, add an assert
2003-09-27 17:50:28 +00:00
Dana Jansens
51cc41e4db
indenting
2003-09-27 17:39:44 +00:00
Dana Jansens
fbed66cc81
ok unfocus before removing transient shit, but remove focus related flags so we don't get focused in the fallback.
2003-09-27 06:41:00 +00:00
Dana Jansens
af7278b6e5
that was a really bad idea, i didnt mean it, i swear
2003-09-27 06:30:51 +00:00
Dana Jansens
8aee387193
unfocus before unlinking the client from the transient tree
2003-09-27 05:19:15 +00:00
Dana Jansens
0908816132
when looking for the focus target, search for modal children in the entire transient tree, not just children of the client on which focus is requested
2003-09-26 19:05:06 +00:00
Dana Jansens
dfd524926e
add client_raise and client_lower which just fire off actions
2003-09-26 18:15:58 +00:00
Dana Jansens
411cc1d1d9
use actions for raising
2003-09-26 18:03:58 +00:00
Dana Jansens
bb541d850a
bring back action_run_string
2003-09-26 18:01:44 +00:00
Dana Jansens
fb341869b1
use an action only for Raise
2003-09-26 17:46:49 +00:00
Dana Jansens
a2849a728d
use actions to focus and raise the wnidow ni client_activate. this means the focus shit gets processed before the raise
2003-09-26 17:29:55 +00:00
Dana Jansens
360d1659a1
checked the wrong var for unmaxing
2003-09-26 15:08:03 +00:00
Dana Jansens
365940477b
add some more client tree searching functions. make transients always get focused when a parent has focus, not just direct parents.
2003-09-26 07:08:07 +00:00
Dana Jansens
7dc01bbee7
remove debug print
2003-09-26 04:10:17 +00:00
Dana Jansens
b4fa843575
add client_set_undecorated().
...
add support for the _OB_WM_STATE_UNDECORATED state hint.
2003-09-25 23:07:15 +00:00
Dana Jansens
caca123b90
dont use the _OPENBOX_PREMAX window property anymore, save max and fullscreen pre-areas in the client struct
2003-09-25 22:47:48 +00:00
Dana Jansens
62b3b8c57e
typo
2003-09-25 22:00:36 +00:00
Dana Jansens
54ccb6a542
focus new children if their direct parent is focused
2003-09-25 19:01:45 +00:00
Dana Jansens
710f41e622
focus nwe transients when another window in their transient tree is focused
2003-09-25 06:41:17 +00:00
Dana Jansens
624033c32d
support the _KDE_WM_CHANGE_STATE hint
2003-09-24 17:17:51 +00:00
Dana Jansens
f68066aa63
we always want to start with something focused, moving this to openbox.c
2003-09-22 04:14:32 +00:00
Dana Jansens
6538a5ccb2
move the code to find the window under the pointer out of focus.c to client.c
2003-09-21 21:25:23 +00:00
Dana Jansens
38370b2e82
dont assert, just ignore client_unfocus() when the client isnt already focused
2003-09-21 18:43:11 +00:00
Dana Jansens
19e4820073
properly send resize events for when the app has requested the resize
2003-09-19 16:58:23 +00:00
Dana Jansens
abde4bc153
dont split client requested resizes into 2 events, thanks to manmower for this idea
2003-09-18 20:09:16 +00:00
Dana Jansens
16f46c296d
no tabs
2003-09-17 07:44:49 +00:00
Dana Jansens
c4e4760c41
add copyright headers, adjust --version output to include copyright, and --help output to not include version output.
2003-09-17 07:32:52 +00:00
Dana Jansens
3a607fad9d
revert my commit of d3th, it fucked up focus badly
2003-09-15 11:29:17 +00:00
Dana Jansens
4ccc4c5ed7
break focus. or maybe make it better.
...
these changes make it work when you alt-tab off a fullscreen window, that it doesnt iconify, and that it is immediately restacked instead of waiting for a FocusIn event to arrive. The code now assumes that if the window says it can focus, that if we focus it, it is focused.
add the XDone handler to ObMainLoop, which is fired upon the occurance of there being no more X events to read.
2003-09-15 10:54:07 +00:00
Dana Jansens
3e9d050ffe
save the sm_client_id just like saving other properties, dont query each time its needed
2003-09-15 06:50:25 +00:00
Dana Jansens
b317f01403
dont impose staying on-screen for non-normal windows like kicker
2003-09-14 18:35:21 +00:00
Dana Jansens
d89391ec94
dont waste a strdup which is never freed
2003-09-14 06:40:33 +00:00
Dana Jansens
49a73ce15c
add support for a default icon, but no icon has been made yet.
2003-09-12 01:11:33 +00:00
Dana Jansens
5e38ae49ce
remove debug prints
2003-09-08 19:32:01 +00:00
Dana Jansens
3fa11ec62b
round 2 for this shit
2003-09-08 18:05:42 +00:00
Dana Jansens
4c0adb1f2b
flush after resizing a client
2003-09-08 18:01:46 +00:00
Dana Jansens
5bebe5fbf8
if the client is growing, resize it before the frame. if its shrinking, then resize the frame first. reduces flicker lots.
2003-09-08 17:58:31 +00:00
Dana Jansens
9f2a844beb
watch for windows with titlecounts changing their title and getting an incorrect titlecount
2003-09-08 17:51:54 +00:00
Dana Jansens
e9d878f47d
oops
2003-09-08 17:39:21 +00:00
Dana Jansens
7cbcc099ef
some simpler code
2003-09-08 17:30:55 +00:00
Dana Jansens
3942d579d8
dont reset all the states to FALSE in client_get_state, this made an initial IconicState get ignored
2003-09-08 17:22:46 +00:00
Dana Jansens
4bec1c07db
Closes #799 . i think im too high to say more.
2003-09-06 09:25:05 +00:00
Dana Jansens
c20a8d986a
handle the case where a transient is a child of a dockapp
2003-09-03 22:06:17 +00:00
Dana Jansens
e7b2e52b78
support getting the desktop from the startup notification protocol
...
pass on to the startup notification code that a window has mapped with a given wmclass
2003-09-03 20:42:49 +00:00
Dana Jansens
806a8c411f
add a reconfigure action, also reconfigure on SIGUSR2.
...
support reconfiguring throughout the entire codebase.
2003-09-03 18:11:39 +00:00
Dana Jansens
5e5fdb1666
make the client destructor a GDestroyNotify
2003-09-03 08:10:51 +00:00
Dana Jansens
78dfba0195
stop doing stupid shit for the size increments in client_configure, it belongs in the moveresize code. add it there.
2003-09-02 07:50:52 +00:00
Dana Jansens
3ab0fc4814
flash when urgent
2003-09-01 03:42:44 +00:00
Dana Jansens
9d42df6ab4
add urgent actions
...
add some macros for moving/resizing clients
add 'vibrate' action
2003-09-01 02:02:40 +00:00
Dana Jansens
3e4495c4c8
move_onscreen was supposed to go away.. :) thanks mikachu
2003-08-31 06:55:14 +00:00
Dana Jansens
0185445e3a
use the nwe theme's show_handle value
2003-08-30 19:02:48 +00:00
Dana Jansens
8e76e32863
add destructor functions for clients that you acn subscribe with, and use these instead of hardcoding special cases in the unmanage code
2003-08-30 17:46:23 +00:00
Dana Jansens
3c5f6db04c
remove the event dispatcher
2003-08-29 06:52:55 +00:00
Dana Jansens
615cbd9607
change the menu plugin interface, no need for the create/destroy functions any more.
...
redo the client-menu plugin to work with the new menu api
2003-08-28 05:44:13 +00:00
Dana Jansens
c34ef4028e
half way through the changes to new menu code/design. hot shit. static menus work, on to plugins next.
2003-08-28 02:10:23 +00:00
Dana Jansens
a32c2c125c
dont be rude to non-normal windows with keeping them onscreen
2003-08-27 18:50:12 +00:00
Dana Jansens
fdfaa0c8dd
remove the last of the cool stuff thanks to GTK fuck fuck. no more not focusing windows in groups that arent focused on map
2003-08-25 18:40:00 +00:00
Dana Jansens
5186d04c61
better handling of maximizing, wrt changing decorations on the windows, and showing the correct decor for the max state especially for windows which dont change size (Xnest) when maximized cuz they are at their maximum size already
2003-08-25 08:49:48 +00:00
Dana Jansens
0964b804a1
restore the stacking order of a saved session
2003-08-25 07:48:28 +00:00
Dana Jansens
888c3d1f6a
make activate take a here parameter
2003-08-14 05:57:45 +00:00
Dana Jansens
950b85b988
oops i fucked up tore's patch. better.
2003-08-12 19:41:22 +00:00
Dana Jansens
e531f69006
bug fixes for growtoedge from tore. props to tore for all the growtoedge and movetoedge code, and directional focus code also since i dont think i mentioned his name before in the changelogs woot.
2003-08-12 19:25:03 +00:00
Dana Jansens
f4979de3f5
dont move windows when starting
2003-08-12 09:30:28 +00:00
Dana Jansens
c1f0f7c40f
small bugfix to the directional focus code.
...
add the client_directional_edge_search function.
2003-08-12 08:25:04 +00:00
Dana Jansens
c90da6da78
move the keyboard and mouse plugins into the kernel for mucho sexiness.
...
make workspace changing a grabbed/interactive process like focus cycling is, with the popup and all.
this is some hot shit.
2003-08-12 07:26:16 +00:00
Dana Jansens
d94fba7262
save the frame decorations in client_configure_full before causing the fake frame adjust, since that loses its old value.
2003-08-10 23:30:15 +00:00
Dana Jansens
2494762dbf
a couple frame layout bugfixes hidden inside all this.. wee
...
fixes for maximizing windows:
- when you toggledecor, it will reconfigure once, but the new constraints from the decor changes would not be in effect when the window was resized to the contranits. fixed by calling frame_adjust_area first thing ni client_configure_fulll with fake=TRUE which will recalc all the frame geometry without resizing/redrawing anything in the frame. this way the decor can take effect in the geometries.
- when maxed horizontally, make the client fill the screen, but dont do this by just making it wider than the screen, fit it to the screen and adjust the titlebar/handle as appropriate to keep it all on the screen.
- when maxed horizontally and vertically, remove the handle from the decorations
2003-08-05 10:31:20 +00:00
Dana Jansens
853d5f4b70
when setting up decor on a window, it needs to reconfigure twice if the decor changes, cuz the constraints need the new frame sizes to work right
2003-08-05 07:39:44 +00:00
Dana Jansens
26827d875a
kill non-opaque move/resize
...
add an option for redrawing/resizing the client window while resizing, when disabled the client is not touched until the resize is complete.
2003-08-03 17:47:10 +00:00
Dana Jansens
be7c0d426a
use the frame size not the client size when figuring out if stuff fits on the screen
2003-08-02 18:09:46 +00:00
Dana Jansens
4a2400c5c2
that line ended up in teh if somehow...
2003-08-02 05:31:23 +00:00
Dana Jansens
c8fa3a6028
set the desktop hint if the desktop is changed by the session code
2003-07-31 09:02:56 +00:00
Dana Jansens
d7f3d16fb7
set the desktop hint after everything is read/setup even session stuff
2003-07-31 09:01:14 +00:00
Dana Jansens
717d10f31a
add the window to the lists before setting the client list hint
2003-07-31 08:45:57 +00:00
Dana Jansens
02c15aca65
add a function to retrieve the sm_client_id value
2003-07-31 08:04:20 +00:00
Dana Jansens
9c1438f17b
restore saved session data for applications
2003-07-30 20:01:35 +00:00
Dana Jansens
9e9e6278d5
attemp #3
2003-07-30 16:15:51 +00:00
Dana Jansens
f346738173
attempt #2 at better logical size values
2003-07-30 16:14:24 +00:00
Dana Jansens
0a809d36dd
attempt #2 at better logical size values
2003-07-30 16:13:52 +00:00
Dana Jansens
c852826e9e
include the base size in the logical size
2003-07-30 16:09:56 +00:00
Dana Jansens
006de2abaa
the size can be 0 when there is a base size
2003-07-30 07:09:36 +00:00
Dana Jansens
1aa0bc66eb
improved ICCCM compliance!
...
a) send ConfigureNotify back to the client as required by the ICCCM in all sitatuations.
b) send the corrent coords in the ConfigureNotify, including the border width
c) remove the WM_STATE property when unmanaging a window
2003-07-30 06:19:15 +00:00