Commit graph

239 commits

Author SHA1 Message Date
Dana Jansens
4d82dd3017 make the new placement restrictions not affect !normal windows like panels 2003-07-28 19:53:54 +00:00
Dana Jansens
950516124f make those apps stay/map on screen!! fuck stupid apps. thats right im talking to you mozilla and you too java. 2003-07-28 18:06:55 +00:00
Dana Jansens
09f178aa54 use the macro 2003-07-28 16:10:06 +00:00
Dana Jansens
eb1fb5580e keep apps from moving/maping their titlebar underneath left/top panels 2003-07-28 07:19:47 +00:00
Dana Jansens
11cde9683d add client_search_transient which searches the tree from a client down for a client 2003-07-25 13:25:09 +00:00
Dana Jansens
5be0a82a35 use ob_debug for any debug printing and only display the output when its a debug build or when --debug is passed to it 2003-07-24 06:02:38 +00:00
Dana Jansens
a057d14c8b stop shownig the desktop when a new window maps 2003-07-22 16:50:23 +00:00
Dana Jansens
4c1641bfc7 simple code cleanup 2003-07-12 06:17:13 +00:00
Dana Jansens
9d7244e646 when a transient maps on another desktop, give it focus when it deserves it 2003-07-11 15:32:03 +00:00
Dana Jansens
130a42710c move to the desktop of the activated window 2003-07-11 00:08:43 +00:00
Dana Jansens
81af5a8b0c add disabled buttons, instead of now showing buttons at all when they wont do anything, now show a disabled button instead. this severely breaks compatibility with blackbox themes since there is no good way to automiatically create a disabled button that i can think of, so if they dont exist in the theme you get black and white for the button.
when a window cant be resized, its handle is not removed but its grips are.

change allowing the user to disable individual decorations as that is overkill,
instead allow a toggle through the client.decorate boolean.
2003-07-10 23:27:02 +00:00
Dana Jansens
a95dc346fe prefix and capitalize ObMenu ObMenuEntry and ObMenuEntryRenderType
make the ObMenuEntryRenderType a standard enum instead bitflags
2003-07-10 19:27:12 +00:00
Dana Jansens
bddbe94328 make ob_state a function so it cant be changed outside of openbox.c 2003-07-10 19:06:00 +00:00
Dana Jansens
35418ca0fc remove the ob_root var, its redundant of what Xlib already provides 2003-07-10 19:01:41 +00:00
Dana Jansens
122d55fbad prefixing and capitalizing the StackLayer -> ObStackingLayer enum.
less includes in headers for less rebuilding on changes
2003-07-10 17:03:05 +00:00
Dana Jansens
59f318e897 prefix and capitalize the ObFocusFallbackType enum 2003-07-10 16:42:42 +00:00
Dana Jansens
e4be1f860b prefix TRAN_GROUP to OB_TRAN_GROUP 2003-07-10 07:01:13 +00:00
Dana Jansens
4736c257a5 prefix and capitalize some more constants/enums in client.h (Function -> ObFunctions and WindowType -> ObClientType) 2003-07-10 06:59:39 +00:00
Dana Jansens
2477a38d2f rename the Client struct to ObClient 2003-07-10 06:38:42 +00:00
Dana Jansens
b42ef7362c add a mwm.h for the mwm hint structure and flags.
use proper prefixing and capitalization for the new mwm stuff.
2003-07-10 06:23:38 +00:00
Dana Jansens
276b2be581 add misc.h with some standard enumerations with proper prefixing and capitalizations.
use the new enums throughout.

provide keycodes and cursors through ob_cursor and ob_keycode functions, which use the new misc.h enums for picking the cursor and keycode.
2003-07-10 06:18:47 +00:00
Dana Jansens
6357583c39 rename 'xinerama' stuff to 'monitors' to be more generic and descriptive. 2003-07-10 05:44:23 +00:00
Dana Jansens
0719843c68 add client_search_top_transient.
keep transients all on the same desktop together. use client_search_top_transient where possible in client.c
2003-07-10 04:34:18 +00:00
Dana Jansens
34e819738b xinerama support 2003-06-27 04:20:30 +00:00
Dana Jansens
22112d2b4e check that extensions_vidmode is set before trying to use the vidmode functions 2003-06-26 16:32:40 +00:00
Dana Jansens
da24f9156b set the desktop hint when the window already has a hint but its out of range 2003-06-26 07:30:19 +00:00
Dana Jansens
ba76ffaa2b remove/add instead of raising to put a window into a new layer 2003-06-26 07:07:42 +00:00
Dana Jansens
6dd3ee7271 check to make sure the window is on screen *after* positioning it 2003-06-24 19:19:06 +00:00
Dana Jansens
069e9607fa add decoration state to the frame struct. make client_configure adjust the frame if the decorations do not match between the client and the frame, so that when they change it can send a configurenotify to the client. 2003-06-21 18:59:35 +00:00
Dana Jansens
d085756572 make client_reconfigure a non-user-type client_configure 2003-06-21 18:29:42 +00:00
Dana Jansens
7e83fa0866 remove debug print 2003-06-21 18:08:26 +00:00
Dana Jansens
716477fc40 send teh configure event to client on user-requested final configures even if not moved, cuz usualy the final isnt sent with a change, but just to end the move process. 2003-06-21 17:28:36 +00:00
Dana Jansens
c100b72c5d more namespacing with Rr* 2003-06-21 02:26:50 +00:00
Dana Jansens
092616de9a rename pixel32/16 to RrPixel32/16 2003-06-21 02:00:42 +00:00
Dana Jansens
a4a0cb7829 fixed to accomodate the changes to the render/ API. 2003-06-21 00:42:47 +00:00
Dana Jansens
36231e5cb3 fix for how base-size is used to comply with the icccm 2003-06-19 17:14:16 +00:00
Dana Jansens
7cbac3c4d5 describe the complicated if a bit :) 2003-06-08 22:38:31 +00:00
Dana Jansens
07539c38c8 more checks for when to do an XResizeWindow 2003-06-08 22:37:31 +00:00
Dana Jansens
43d109dd06 send the configure notify for resizes too, just to be a little more safe 2003-06-08 22:30:55 +00:00
Dana Jansens
ddeb066ed4 onlt send configurenotify if the client actually moved, to work around emacs, hopefully :) 2003-06-08 22:28:32 +00:00
Dana Jansens
05e52e3c8e some more fixes for resizing clients. aspect ratio is not the last thing checked and so rules all, that might need to change.. however, it now uses base-size only for aspect ratios and base-size/min-size for other sizing shit, as per the ICCCM. 2003-06-08 21:38:06 +00:00
Dana Jansens
bda9e6aaf9 from icccm:
If a base size is not provided, the minimum size is to be used in its place and vice versa.

Added support for this.
2003-06-08 21:21:23 +00:00
Dana Jansens
ac4e6784dd i was backwards 2003-06-08 01:20:13 +00:00
Dana Jansens
5b3d5bda24 don't resize the client itself while doing a resize if its not final when config_opaque_resize is not on 2003-06-08 01:01:13 +00:00
Dana Jansens
f7de8e5a59 better VIDMODE support, handle the cases where the functions fail 2003-06-04 23:21:51 +00:00
Dana Jansens
abd8ec3c2e size fullscreen applications to the resolution with the VIDMODE extension 2003-06-04 23:19:06 +00:00
Dana Jansens
68cc6e30b8 remove the client_remaximize function, and replace it with the client_reconfigure function, which just calls client_configure with the window's current location and dimensions, user=TRUE and final=TRUE.
add support for the VIDMODE extension in client_configure, namely, fullscreen windows are positioned at the point of the viewport rather than at 0,0.
call client_reconfigure when uniconifying a window, so that fullscreen windows are put at the point of the view port.
2003-06-04 23:11:26 +00:00
Dana Jansens
c6fd3aa890 use client_can_focus from client_focus to always get the same result 2003-06-04 19:24:37 +00:00
Dana Jansens
4cb48bebb5 reverting the transient focus cycle change, its just not.. right. add the parent's title to the transient's for the popup instead of just relpacing it 2003-06-04 18:22:19 +00:00
Dana Jansens
e0fa57d21c allow focus_fallback to query if a client can be focused without changing the focus order on it 2003-06-04 17:16:50 +00:00
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