Dana Jansens
70a34967d6
ignore xerrors while using the pixmaps specified by the client, since they can certainly be invalid and there's nothing i can do about it.
2003-06-03 04:52:54 +00:00
Dana Jansens
f7b687487c
rm g_messages.. ones that segfault.. :>
2003-06-03 01:54:31 +00:00
Dana Jansens
5a8c164412
also dont increment the nicons if the w*h is 0
2003-06-02 23:16:50 +00:00
Dana Jansens
754391ea4d
watch out for 0x0 icons, and skip them
2003-06-02 23:10:27 +00:00
Dana Jansens
365a9fbb69
adjust what gets raised on map a bit, a little less selective.
2003-05-30 18:16:33 +00:00
Dana Jansens
4b2ec0d03c
use frame->visible, not the desktop number, other states exist too, like show_desktop
2003-05-26 18:39:48 +00:00
Dana Jansens
a373b1582e
use the user friendly desktop number
2003-05-24 08:37:21 +00:00
Dana Jansens
4d814a383b
add actions for changing client layers to abov/below/normal
2003-05-22 02:22:43 +00:00
Dana Jansens
d6cb5adbea
typo
2003-05-22 02:05:38 +00:00
Scott Moynes
71d2605e1c
Client menus
...
Add "client_menu" to pluginrc to use.
2003-05-21 23:58:40 +00:00
Dana Jansens
5a7953b36a
2 in 1 again..
...
a) directional focus actions
b) action system changes i.e. use structs/arrays for convertings strings to actions instead of gross if-else chains
2003-05-19 03:52:25 +00:00
Dana Jansens
a18c1697b1
make icons use pixel32 data, and image_draw takes pixel32 data.
...
client.c gets pixmap icons as a backup to netwm ones, and they are converted into pixel32 data.
2003-05-18 23:06:11 +00:00
Scott Moynes
d8921eb3d2
this is actually xor :) - fixing the focus search function to not return NULL if no valid group members exist to be a transient for
2003-05-18 17:49:17 +00:00
Dana Jansens
993fc6226d
2 in 1 deal :\
...
client.c stacking.c: fixing looping transient case for group transient windows. now a window which is transient for a group is *not* transient for any other transient windows in the group (perviously the other window had to be transient for the group to be excluded, now it can be transient for anything).
client.c/h event.c render.c/h: adjustnig icon handling a bit. will be converting the legacy pixmap icons into rgba data so they can be handled the same as netwm icons.
2003-05-18 17:09:55 +00:00
Dana Jansens
0b5f6589ba
print the class not the name
2003-05-16 21:34:00 +00:00
Dana Jansens
f17b225daa
save the dock's class/name for future evil purposes!
...
also print names of windows being managed/unmanaged
2003-05-16 20:20:33 +00:00
Dana Jansens
b77e40e1c7
rename "Slit" to "Dock".
...
add config options to the rc3 for the dock.
create a window_map, add DockApps to the ObWindow types, use the window_map for translating windows into objects for event handling (only one lookup now) and remove the old maps (client_map, menu_map).
2003-05-16 18:10:10 +00:00
Dana Jansens
6e42b65bda
add anotehr stacking_add function.
...
make stacking_add take care of raising also.
make new windows that dont get focus also not raise above the focused window.
2003-05-16 15:16:33 +00:00
Dana Jansens
c5b8ec744c
pass teh correct values for config notify events
2003-05-14 18:25:51 +00:00
Dana Jansens
58cfbb7f84
Clients Menus and Slits are all 'ObWindow's now.
...
Stacking is done with ObWindows.
Slits add themselves to the stacking order, as do clients of course.
Added some macros for adding/removing to the stacking order.
2003-05-11 19:44:33 +00:00
Dana Jansens
ffb76025fa
use the size of the icon window for slit apps, not the client window
2003-05-11 17:31:23 +00:00
Dana Jansens
c4a5149016
add a slit to the kernel
2003-05-10 20:52:32 +00:00
Dana Jansens
d5eacc5642
add a client_activate function, use it for net_wm_active mesgs and for focus cycling.
2003-05-09 22:53:11 +00:00
Dana Jansens
f26f23de50
all my changes while i was offline.
...
better alt-tabbing. better transient handling. i dont even know. lots of fucking cool shit so WATCH the FUCK OUT.
2003-05-09 16:57:17 +00:00
Dana Jansens
f8e7ab509c
a more correct for the missing frame problem. don't restack windows when changing the window's layer while it is being managed.
2003-04-27 22:33:38 +00:00
Dana Jansens
fd89a7eadc
only focus on startup if focus_new is true
2003-04-25 22:40:04 +00:00
Dana Jansens
d3c094357d
restore the desktop and focused window on restarts if possible
2003-04-25 22:35:08 +00:00
Dana Jansens
92d3f2342d
add helper functions for manipulating the focus_order list.
...
move the focus popup into focus.c, out of action.c
allow cycling to iconic windows, which are kept at the bottom of the focus_order lists.
2003-04-25 21:27:16 +00:00
Dana Jansens
019c779f7d
some more checks for transients looping on eachother when they are transients of a group
2003-04-24 03:41:30 +00:00
Dana Jansens
0ba6700655
even better checks for when to focus new windows. focus dialogs when they are the only member of their group
2003-04-22 07:06:10 +00:00
Dana Jansens
5d973d35e8
yet more changes to choosing to focus windows when they mapp
2003-04-21 00:47:14 +00:00
Dana Jansens
d3ce8451bc
new focus-new rules
2003-04-20 05:53:10 +00:00
Dana Jansens
8dfa16abae
i lied.. fuck @ those gnome dialogs
2003-04-19 21:11:04 +00:00
Dana Jansens
ccb8cd61ac
lighten up a bit on the focus new windows criteria
2003-04-19 21:10:27 +00:00
Dana Jansens
b426f7667d
adjust choosing to focus new windows, make it more strict.
...
eat all Enter events when unmapping a window so focus fallback can be more smarter..
2003-04-18 08:44:32 +00:00
Dana Jansens
c4fb053f2f
more strict rules on what will be focused by the focusNew option in the rc3. only strictly NORMAL windows will be focused, not dialogs or anything else when they are mapped.
2003-04-18 04:13:08 +00:00
Dana Jansens
077cd7f944
watch out when unmanaging a window, that it is not being move/resized
2003-04-18 01:51:41 +00:00
Dana Jansens
cfe3dc9ec4
a) put transient windows on the same desktop as their parent
...
b) if a window is attempted to be focused but it is not on the current desktop,
then move it to the top of the focus order on its desktop
2003-04-17 18:21:19 +00:00
Dana Jansens
04cfdd261d
code cleanup
2003-04-16 17:06:42 +00:00
Dana Jansens
1683b33fc1
when flags are not set assume bette defaults
2003-04-16 16:56:26 +00:00
Dana Jansens
c915078fab
only change the group info if the group flag is set
2003-04-16 01:02:29 +00:00
Dana Jansens
8c2f20e672
only add transients if we are IN a group
2003-04-16 00:55:27 +00:00
Dana Jansens
712475a9b5
oops nm
2003-04-16 00:53:52 +00:00
Dana Jansens
f3a93aeede
less ()s cleanup
2003-04-16 00:53:32 +00:00
Dana Jansens
d4b2de2180
remove transients before removing ourlselves from teh group
2003-04-16 00:52:18 +00:00
Dana Jansens
998ad4e7ee
set the group to null when removeing ourselves from it
2003-04-16 00:49:06 +00:00
Dana Jansens
3c960fb928
remove transients of the group from teh window when it leaves the group
2003-04-15 16:53:36 +00:00
Dana Jansens
4eb80a81cf
add group transients when setting up the group
2003-04-15 16:52:14 +00:00
Dana Jansens
5898c68530
bug in the search for transient_for's
2003-04-15 16:41:55 +00:00
Dana Jansens
e6d1ab217f
fixes for handling char**s
2003-04-14 23:38:54 +00:00
Dana Jansens
3175986d3a
remove casts from PROP defines. use proper vars and cast elsewhere if needed.
2003-04-14 22:20:27 +00:00
Dana Jansens
d4b20aef31
rip the prop code i wrote in cwmcc out and make it all 64bit friendly (i think!). stop using gulong for values from the xserver, using guint32 instead.
2003-04-14 21:34:35 +00:00
Dana Jansens
58ebc8f73c
apply layers to all transients. only raise once on the highest window who's layer changed after applying layers to them all
2003-04-14 01:10:54 +00:00
Dana Jansens
4d06971322
ifdef not ifndef
2003-04-13 23:43:18 +00:00
Dana Jansens
e75ead70a6
simple cleanups for the client_iconify function.
...
also dont follow into other groups when searching up the transient_for tree
2003-04-13 23:24:18 +00:00
Dana Jansens
16e7aac633
rm the unused vars
2003-04-13 21:48:10 +00:00
Dana Jansens
fd1b33af0d
onyl focus 'normal' windows on map
2003-04-13 21:47:39 +00:00
Dana Jansens
58ba751ab7
only keep fullscreen windows on top while they are focused
2003-04-13 21:46:31 +00:00
Dana Jansens
b58268e01a
make fullscreen decorations and functions be calculated by the setup_decor_and_functions func
2003-04-13 21:37:32 +00:00
Dana Jansens
00042637e8
only print that when debuggin focus
2003-04-13 21:19:43 +00:00
Dana Jansens
5cf61ee023
move the openbox engine into librender and the kernel. the theme is loaded and stored inside librender. the frame is decorated and managed inside the kernel.
2003-04-13 07:18:28 +00:00
Dana Jansens
6011fe9c95
make utility windows able to be resized
2003-04-11 19:14:13 +00:00
Dana Jansens
a5bd2babc8
deiconify transient parents when a child is deiconified.
2003-04-10 07:21:30 +00:00
Dana Jansens
e9d875cf83
some smarter rules for focusing new window when focus_new is not set
2003-04-10 06:29:43 +00:00
Dana Jansens
71badb0790
move config option loading for the kernel into config.c/h
...
add options for the number of desktops and the names of the desktops
2003-04-08 07:31:26 +00:00
Dana Jansens
63b0c5616f
check for focus before unfocusing
2003-04-08 06:31:25 +00:00
Dana Jansens
c99bb4a049
add more options for focus fallback, use an enum for all the types of fallbacks.
2003-04-08 06:14:53 +00:00
Dana Jansens
fc32577766
fallback focus while unmanaging the window
2003-04-08 01:02:28 +00:00
Dana Jansens
5f53cd5fb8
check for new windows always being onscreen.
...
rename the client pointer to self in teh manage unmanage functions for consistancy
2003-04-07 22:26:31 +00:00
Dana Jansens
e6cc69ca04
support for transients of groups
2003-04-07 08:43:33 +00:00
Dana Jansens
5f42ecfacb
track window groups
...
iconify all its transients when a window is iconified
2003-04-07 05:47:20 +00:00
Dana Jansens
db086ef336
put focus_cycle into focus.c, use it there in the action. improved it as well to handle odd cases like modal windows. added functions to client.c which are needed by the focus cycling routine.
2003-04-07 03:46:41 +00:00
Dana Jansens
3778846122
typo
2003-04-05 21:49:55 +00:00
Dana Jansens
3d0ba381db
put it back
2003-04-05 21:40:47 +00:00
Dana Jansens
e38b27fcce
make unfocus really unfocus everything
2003-04-05 21:36:37 +00:00
Dana Jansens
cbbf90a718
change how rc parsing will work. a=b will be parsed in any [section] and given to a separate parsing callback. no more general config infrastructure needed/
2003-04-05 20:27:03 +00:00
Dana Jansens
b10b31feb8
rm debug print
2003-04-02 06:31:04 +00:00
Dana Jansens
4398c7c168
add a shaded button
2003-03-31 22:58:54 +00:00
Dana Jansens
abbb454a29
only disallow shading when the function is not enabled, dont disallow unshading
2003-03-31 20:24:56 +00:00
Dana Jansens
0327c5a778
use the frame's position in the maximize function since they're converted to the client coords before getting to client_configure
2003-03-31 07:51:04 +00:00
Dana Jansens
8fbc68d46d
set fullscreen and max positions properly for all gravities
2003-03-31 07:22:19 +00:00
Dana Jansens
8ac5a60322
rm client_disable_decorations.. it already had an action.
...
add the action to the action_from_string func
2003-03-28 23:02:57 +00:00
Dana Jansens
8fb10d8d87
add client_disable_decorations
2003-03-28 22:59:26 +00:00
Dana Jansens
3e8ecbeefa
onlt raise the window when sending to a desktop it wasnt already on
2003-03-28 11:17:52 +00:00
Dana Jansens
0fcd4c30cc
RevertToPointerRoot is the worse error case, so use it always
2003-03-28 10:47:48 +00:00
Dana Jansens
cc813ed698
make the value boolean
2003-03-28 10:02:21 +00:00
Dana Jansens
b749cd5ec4
was not moving the window between desktop focus lists sometimes. bad news. now i always do. yay!
2003-03-28 08:23:18 +00:00
Dana Jansens
92bea590c0
let a window be 'moved' to a new desktop without actually show/hiding it. useful for sending a window when following it, so theres no flash/flicker
2003-03-28 08:11:02 +00:00
Dana Jansens
38c776bd4e
use the struts to size the window correctly for maximized windows
2003-03-28 03:18:08 +00:00
Dana Jansens
91fed61884
read struts properly
2003-03-28 03:02:35 +00:00
Dana Jansens
e7d225b84a
only use the initial_state shit when NOT starting and when managing the window
2003-03-28 01:25:51 +00:00
Dana Jansens
07a52aeaff
mor fabulous focus fixings.
...
RevertToNone so that when the fallback stuff goes the window wont already have focus cuz it has the pointer in to
2003-03-28 00:27:35 +00:00
Dana Jansens
bf32b376b5
handle focus in the kernel, no more plugin
2003-03-27 23:10:22 +00:00
Dana Jansens
e0170fe181
rm debug print
2003-03-27 19:05:16 +00:00
Dana Jansens
f29dd7e0cd
not using CurrentTime anywhere
2003-03-26 15:02:08 +00:00
Dana Jansens
093c4cb710
kill the prints again for now
2003-03-26 09:47:08 +00:00
Dana Jansens
cc844c5794
put back map/unmap msgs
2003-03-26 09:05:49 +00:00
Dana Jansens
b48c0e0b47
oops
2003-03-26 08:00:56 +00:00
Dana Jansens
f24116de75
rm some debug prints
2003-03-26 07:59:05 +00:00
Dana Jansens
fef5d0d9bc
use rgba icons for clients
2003-03-26 05:36:18 +00:00
Dana Jansens
bdf1662af2
clarify using stacking_lower for restoring the stacking order
2003-03-25 00:54:47 +00:00
Dana Jansens
d286702ed4
free the startup stacking order after using it
2003-03-25 00:44:27 +00:00
Dana Jansens
e731042dc9
read in the stacking order on startup, and use it to restore windows back to the order they were in before
2003-03-25 00:39:28 +00:00
Dana Jansens
d56e90fac8
use g_hash_table properly
2003-03-24 22:03:38 +00:00
Dana Jansens
c2684d312b
make sure the ConfigureNotify is propogated even when there is no change
2003-03-24 20:15:36 +00:00
Dana Jansens
c9ba604668
always send the event on a final configure even if there was no real move
2003-03-24 20:09:31 +00:00
Dana Jansens
7beec94a1f
make sure windows which cant be moved or resized also can't be fullscreened
2003-03-24 20:05:11 +00:00
Dana Jansens
0d84c43d2a
only configure the engine if something changed
2003-03-24 19:59:46 +00:00
Dana Jansens
436c85576e
only perform the actions necessary when performing an engine_adjust_area. pass whether the client has moved or resized
2003-03-24 19:52:09 +00:00
Dana Jansens
e238e4ac2d
kill debug print
2003-03-24 05:38:28 +00:00
Dana Jansens
3b14b587ef
more focus improvements. everything seems to work!
2003-03-24 04:56:46 +00:00
Dana Jansens
7bb829f8b7
no \n in g_message
2003-03-24 00:40:29 +00:00
Dana Jansens
687559cb2d
yet more improvements to focus handling
2003-03-23 23:47:47 +00:00
Dana Jansens
d88f34e100
code optimization
2003-03-23 20:45:15 +00:00
Dana Jansens
b18f5f1d2b
when adjusting the trasient lists, set them, dont leave them hanging into space
2003-03-23 20:34:13 +00:00
Dana Jansens
cf37170bff
whitespace
2003-03-23 19:44:43 +00:00
Dana Jansens
ff06051eb7
asserts in unmanage to try track a crash
2003-03-22 13:26:28 +00:00
Dana Jansens
9b514b3b61
add the client_kill function, and the kill action, and bind it to the middle mouse button on the close button.
2003-03-22 06:58:38 +00:00
Dana Jansens
dd6e27f2c3
rename the res_name and res_class members to name and class
2003-03-22 00:35:02 +00:00
Dana Jansens
327a0b3de7
always adjust the frames size and position together, so there is no more weird resizing before moving and edge flickering when resizing from the top/left
2003-03-21 18:38:08 +00:00
Dana Jansens
94d871a390
dont check for != NULL before freeing. pointless.
2003-03-21 10:35:35 +00:00
Dana Jansens
9a4ccc919c
add the client_set_focused function.
...
make focus state be changed internally immediately after calling the X functions to make it so, basically, assume their success. this elimiates races all over the place with our state vs the server's state.
2003-03-21 10:26:26 +00:00
Dana Jansens
a3012eafbd
rm debug prints
2003-03-21 08:19:40 +00:00
Dana Jansens
db75d406ce
rm the focused member from the client struct, it was redundant with the focus_client variable around
2003-03-21 08:18:39 +00:00
Dana Jansens
45f6d52712
save decor and functions per client for fullscreening!
2003-03-20 21:52:49 +00:00
Dana Jansens
f76b26e4ad
lock the size/position of maximized and fullscreen clients
2003-03-20 21:49:39 +00:00
Dana Jansens
ba2c6a23df
lock the position/size of maximized windows
2003-03-20 21:09:56 +00:00
Dana Jansens
6321d28652
no \n in g_messages
2003-03-19 19:58:25 +00:00
Dana Jansens
ef43db32eb
rm the comments pointer bindings stuff, thats in a plugin now
2003-03-19 07:12:00 +00:00
Dana Jansens
b3817126ee
add new windows to the back of the focus order list
2003-03-19 07:10:05 +00:00
Dana Jansens
648c55b829
move the focus_order lists into the kernel
2003-03-19 07:08:15 +00:00
Dana Jansens
7d215bd255
add 'grab_server' for grabbing .. the .. server!
2003-03-18 20:00:44 +00:00
Dana Jansens
ad44e8a708
add actions for key/mouse bindings etc
2003-03-18 08:39:28 +00:00
Dana Jansens
bfea000a74
add a keyboard plugin
2003-03-18 05:29:01 +00:00
Dana Jansens
75b07a2bb3
all events are dispatched
2003-03-17 20:16:32 +00:00
Dana Jansens
9b33f7ded6
stop using python internally. add an event dispatcher
2003-03-17 19:54:37 +00:00
Dana Jansens
7f561a6a7a
make client_showhide a static function
2003-03-17 02:05:05 +00:00
Dana Jansens
216a04bdd0
speed up workspace switching by causing the minimal number of expose events (none for the hiding windows!)
2003-03-17 02:03:45 +00:00
Dana Jansens
f8a47de5ec
merge the C branch into HEAD
2003-03-16 21:11:39 +00:00