Commit graph

256 commits

Author SHA1 Message Date
Dana Jansens
3c5f6db04c remove the event dispatcher 2003-08-29 06:52:55 +00:00
Dana Jansens
ec9dd7fdd7 new method for loading menu files etc 2003-08-28 17:32:49 +00:00
Dana Jansens
f7eb47dba4 make client-list-menu work too
more menu cleanups
2003-08-28 07:34:03 +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
56cc3dc663 more typo :) 2003-08-27 18:53:25 +00:00
Dana Jansens
d075ca0993 typo :) 2003-08-27 18:52:15 +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
8173509e90 double deref, props to 'mmj' for spotting this 2003-08-27 05:20:27 +00:00
Dana Jansens
a09984bbc0 add an obscured flag that tracks if the frame is at all obscured 2003-08-20 23:01:56 +00:00
Dana Jansens
888c3d1f6a make activate take a here parameter 2003-08-14 05:57:45 +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
cb49f853c9 keep event_lasttime at the last time an event has come in so far, don't regress when events come out of order. props to shrimpx for this patch. 2003-08-12 04:06:30 +00:00
Scott Moynes
164a095375 Fix lock up when not using a session manager and doing fd management. 2003-08-07 17:06:12 +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
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
Dana Jansens
64884e4390 i am the king of copy/paste errors 2003-07-29 11:19:57 +00:00
Scott Moynes
df0f00848a more menu fixes.
I hate menus.
2003-07-29 01:29:12 +00:00
Scott Moynes
dd33644de4 Close menu properly on unbound keys. 2003-07-29 01:04:22 +00:00
Dana Jansens
b799cfd9a3 base rudeness on if they have a strut even smarter! 2003-07-28 19:59:37 +00:00
Dana Jansens
067776e783 base rudeness on if they have a strut or not 2003-07-28 19:56:52 +00:00
Dana Jansens
4d82dd3017 make the new placement restrictions not affect !normal windows like panels 2003-07-28 19:53:54 +00:00
Dana Jansens
742106511f hover theme elements for window titlebar buttons 2003-07-28 19:21:45 +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
d8d2fd7148 make things compile again. hover does not work yet. 2003-07-28 16:24:20 +00:00
Dana Jansens
eb1fb5580e keep apps from moving/maping their titlebar underneath left/top panels 2003-07-28 07:19:47 +00:00
Scott Moynes
f37a919095 Menu stuff.
Testing may begin.
2003-07-28 02:52:56 +00:00
Scott Moynes
b8715ba309 Close menu on click if outside the menu.
I think, haven't tested.
2003-07-26 19:58:22 +00:00
Scott Moynes
3c92311b3c Some menu updates.
Don't talk to me about menus.
2003-07-26 06:02:58 +00:00
Scott Moynes
d51702affa I had a commit message but my commit got stepped on so fuck it.
No one cares what I think anyway.
If the menu navigation isn't EXACTLY FUCKING RIGHT I WILL REMOVE IT
AND SOME OTHER POOR FUCK CAN PUT UP WITH ALL THE FUCKING BULLSHIT.
2003-07-24 06:10:55 +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
845833226b add the --replace command line option, and support for the WM_Sn selection 2003-07-22 18:09:41 +00:00
Scott Moynes
ea53850762 Keyboard navigatable menus 2003-07-21 23:19:03 +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
eea43e6488 make the ob_restart/shutdown stuff static vars and expose them only through functions ob_restart_other(), ob_restart() and ob_exit() 2003-07-10 18:50:47 +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
d206303a9f prefixing for the dock. use ObDirection instead of dupliacting it in another enum for the dock's placement 2003-07-10 16:29:40 +00:00
Dana Jansens
7d943a950e prefixing and capitalization for the Frame->ObFrame struct and the Context->ObFrameContext enum and its constants. 2003-07-10 07:16:19 +00:00
Dana Jansens
2477a38d2f rename the Client struct to ObClient 2003-07-10 06:38:42 +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
Scott Moynes
19df0324a6 Makes a simple click not so accidently annoying by making it not
execute a menu action if nothing is highlighted.
2003-06-30 23:06:50 +00:00
Dana Jansens
e846063fa8 4 space indents 2003-06-27 00:03:43 +00:00
Dana Jansens
0423b057ed clear the over item in the menu when executing shit 2003-06-26 07:22:29 +00:00
Dana Jansens
549627402c only render if there was an over existing 2003-06-25 18:46:51 +00:00
Dana Jansens
7af1c6a9c3 menus grab the keyboard and pointer, thus making only one menu visible at a time, and making them act like gtk menus and * menus do, where you can click and drag and release to select something as well as click-release to elave it open while you search around the menu 2003-06-25 18:43:42 +00:00
Dana Jansens
77062863f3 moveresize messages are not user-requests 2003-06-21 18:10:04 +00:00
Dana Jansens
373a4584d6 make session management optional 2003-06-21 08:45:25 +00:00
Dana Jansens
b3e9fea103 add libSM *client* support, so we should work with gnome-session now! 2003-06-21 05:31:54 +00:00
Dana Jansens
7c13920066 this cnofigure is FINAL! 2003-06-08 01:18:51 +00:00
Dana Jansens
dc7a267af0 there's this case where we DONT want to ignore both events or we end up without anything we know of being focused, even tho something is. this case is now covered. ps i hate focus so much. 2003-05-24 08:38:37 +00:00
Dana Jansens
b1fe0dbbc2 dont refocus the focused window, that just causes so many problems (with alt-tab :) 2003-05-23 20:17:22 +00:00
Dana Jansens
493e7d4a6e ignore ancestor FocusIn events. i get them sometimes when hitting alt-tab and that totally fucks it up cuz it cancels teh alt-tab process. 2003-05-23 01:27:46 +00:00
Dana Jansens
d3980aa459 only button 1 can use menu items 2003-05-22 21:33:44 +00:00
Dana Jansens
3669da9cdd a missing break! 2003-05-22 05:23:41 +00:00
Scott Moynes
71d2605e1c Client menus
Add "client_menu" to pluginrc to use.
2003-05-21 23:58:40 +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
2b2beddc74 add (optional) support for showing a busy cursor via startup notification 2003-05-18 02:10:26 +00:00
Dana Jansens
f6b61bb60e disallow drag events on title buttons.
dont redraw title button when the wheel buttons are used on them.
2003-05-17 15:16:45 +00:00
Dana Jansens
2d6c9a7ba6 remove debug prints 2003-05-16 18:34:51 +00:00
Dana Jansens
a0691941e8 dockapps are ObWindows now.
set the type when creating new dockapps.
2003-05-16 18:34:29 +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
8367ab14e8 movnig shit around 2003-05-16 15:15:30 +00:00
Scott Moynes
78a8680cd7 Added a menu to read from a pipe.
File descriptors added to the event loop.
2003-05-14 03:34:29 +00:00
Dana Jansens
7c7868f47d add internal popups n shit to the stacking list.
some cleanups for the stacking order hint.
add non-opaque move/resize. cant toggle it yet.
2003-05-11 23:31:43 +00:00
Dana Jansens
81cc0749f8 Menus put themselves into the stacking list.
Clicking on the menu (but not on an entry) will raise it.
2003-05-11 19:50:30 +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
ed4f84ac33 can drag slit-apps around in the slit 2003-05-11 05:15:43 +00:00
Dana Jansens
20ba24b741 add autohiding to the slit 2003-05-10 22:33:24 +00:00
Dana Jansens
4e88712158 some slit fixes, support resizing slitapps 2003-05-10 22:20:08 +00:00
Dana Jansens
c4a5149016 add a slit to the kernel 2003-05-10 20:52:32 +00:00
Dana Jansens
bd6d80f168 be more careful about ignoring focusin/out event pairs 2003-05-10 15:51:44 +00:00
Scott Moynes
3fab044f34 whitespace 2003-05-10 14:50:39 +00:00
Scott Moynes
a8a4a2cca3 Menu uber patch
Since we have no menu parser see menu_startup() to customize
2003-05-09 23:15:28 +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
16a9ac018e let the frame hold a focus state so that it can lie.
dont focus windows while cycling, just highlight them as if they are focused
2003-04-25 19:55:41 +00:00
Dana Jansens
9c55fd5a57 rm invalid comment 2003-04-19 18:31:14 +00:00
Dana Jansens
540f547bab only look for FocusOut events on the same window 2003-04-19 18:30:58 +00:00
Dana Jansens
6b7737acc3 the mouse grab screws that up 2003-04-18 22:31:00 +00:00
Dana Jansens
2829849b71 dispatch presses and releases during a move/resize 2003-04-18 22:27:24 +00:00
Dana Jansens
31fac363fb kill the debug prints for now 2003-04-18 22:12:34 +00:00
Dana Jansens
142c14fcc8 nm cant do it.. damn 2003-04-18 22:05:39 +00:00
Dana Jansens
6a9e7dea8e ignore another type of crossing event, caused when leaving gtk popup menus 2003-04-18 21:56:53 +00:00
Dana Jansens
01debc76b9 yet MORE changes to how focusin/out's are handled. more edge case fixing, this time with focus fallback when unmapping a window in sloppy focus mode. 2003-04-18 08:45:49 +00:00
Dana Jansens
0a3d3245a6 remove debug print 2003-04-17 17:31:22 +00:00
Dana Jansens
793099ce57 dont ignore all Virtual pointer events 2003-04-17 08:04:45 +00:00
Dana Jansens
c4af950903 fix up support for moveresize. make keyboard grabs Async so that i can hit escape to cancel a moveresize process. 2003-04-17 07:00:13 +00:00
Dana Jansens
12d4c8666c add support for net_moveresize_window and net_wm_moveresize 2003-04-17 05:43:41 +00:00
Dana Jansens
7886b797a3 move the move/resize functionality into moveresize.c, for use with the netwm atoms. use it from teh plugins. combine the two actions. 2003-04-17 05:28:35 +00:00
Dana Jansens
450c21d0ca ignore virtual crossing events.. 2003-04-17 01:48:26 +00:00
Dana Jansens
cb71c993e5 dont send menu events to plugins 2003-04-16 19:41:22 +00:00
Dana Jansens
185d1337e5 menus works on some level. add a built-in root menu 2003-04-16 18:09:11 +00:00
Dana Jansens
79a352a40b raise menus above clients.
hilight menu entries as the cursor passes over them.
2003-04-16 05:36:51 +00:00
Dana Jansens
677bc6ed2d clean up this mess of crap a lot 2003-04-14 17:07:04 +00:00
Dana Jansens
bb8b9ddbc5 pass the Client for frame_context cuz the client might be NULL 2003-04-13 08:36:38 +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
a6ce30cba9 add MapRequest print 2003-04-10 06:46:44 +00:00
Dana Jansens
9bae1e3128 rm debug print 2003-04-08 20:07:20 +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
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
2dac2cc01b ignore inferior enternotifies
add anotehr focusdebug print
2003-04-07 22:27:02 +00:00
Dana Jansens
3cbf5bfa7c missed one 2003-04-07 07:29:49 +00:00
Dana Jansens
2eb4d79326 put focus messages in ifdefs 2003-04-07 07:29:00 +00:00
Dana Jansens
d43a109ba2 nm that, pointless... 2003-04-06 18:38:51 +00:00
Dana Jansens
d1913d1d01 disable keyboard and mouse input while ob is starting or exiting 2003-04-06 18:18:55 +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
e6818c741c yet more haxes to make focus events work the way i want. this is rough shit. 2003-03-31 06:36:59 +00:00
Dana Jansens
a6d9be4f66 yet more focus fixings. RevertToPointerRoot could mess things up focusing a client and us ignoring the FocusIn of Pointer type. this is all handled now. 2003-03-30 22:58:04 +00:00
Dana Jansens
69177d8760 FocusOut's are NOT ignored. thats bullshit. fixing comment. 2003-03-28 11:14:20 +00:00
Dana Jansens
76943cdfe0 focus... works...? i have all cases of mozilla working, with RevertToPointerRoot sucking ass but.. working now. 2003-03-28 11:05:38 +00:00
Dana Jansens
4d65fe35ff comment why NotifyAncestor is not ignored 2003-03-28 10:46:25 +00:00
Dana Jansens
5895fa84ac yet MORE focus events reworkings. mozilla behaves now too. woot 2003-03-28 10:44:22 +00:00
Dana Jansens
32808b53a5 more focus cleanups. ignored focusin's were not working right recursively.
also, when the focusin coming later is not for a valid window the fallback would not be called. both fixed.
2003-03-28 09:57:48 +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
c7e818abd7 dont focus !normal windows on enter events 2003-03-28 01:13:56 +00:00
Dana Jansens
52d4433a00 fallback focus in superior fashion 2003-03-28 00:25:10 +00:00
Dana Jansens
c3a2684e02 watch for FocusIn's for unknown clients 2003-03-27 23:39:20 +00:00
Dana Jansens
3139c3c713 missed the end of a comment 2003-03-27 23:12:42 +00:00
Dana Jansens
bf32b376b5 handle focus in the kernel, no more plugin 2003-03-27 23:10:22 +00:00
Dana Jansens
2fc662aa62 set the last time to CurrentTime for events that don't have time stamps 2003-03-27 20:28:06 +00:00
Dana Jansens
f29dd7e0cd not using CurrentTime anywhere 2003-03-26 15:02:08 +00:00
Dana Jansens
0c69d23c24 dont let you got to numdesktops+1 2003-03-26 08:29:34 +00:00
Dana Jansens
a1e450ee69 kill debug prints 2003-03-26 08:18:50 +00:00
Dana Jansens
059fa15ae1 use ungrab enter events 2003-03-26 07:07:55 +00:00
Dana Jansens
9be1d64d36 dont change desktop when its out of range 2003-03-25 23:59:50 +00:00
Dana Jansens
c9a35f0b81 typo 2003-03-25 02:20:16 +00:00
Dana Jansens
5722e9e98d dont accept MapRequest's for !iconic windows 2003-03-25 02:18:19 +00:00
Dana Jansens
d56e90fac8 use g_hash_table properly 2003-03-24 22:03:38 +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
2bdc37e920 double ptrs suck! yay shape! 2003-03-24 19:10:33 +00:00
Dana Jansens
7567e3d781 handle shape events 2003-03-24 19:07:28 +00:00
Dana Jansens
44c5552427 kill debug prints 2003-03-24 05:38:46 +00:00
Dana Jansens
3b14b587ef more focus improvements. everything seems to work! 2003-03-24 04:56:46 +00:00
Dana Jansens
137efd1367 more focus fixes. i wish this could end. 2003-03-24 00:46:21 +00:00
Dana Jansens
687559cb2d yet more improvements to focus handling 2003-03-23 23:47:47 +00:00
Dana Jansens
fdf4265a13 kill debug print 2003-03-23 19:40:23 +00:00
Dana Jansens
e7e2a69fd0 handle multiple maprequests graciously 2003-03-23 19:39:20 +00:00
Dana Jansens
0a69cfc6d2 add strict ansi compliance 2003-03-21 20:25:34 +00:00
Dana Jansens
5034073da7 use the client_set_focused function when getting FocusIn/Out events 2003-03-21 10:24:24 +00:00
Dana Jansens
b23c65362d rm debug print 2003-03-21 08:19:18 +00:00
Dana Jansens
ca45916f77 update engine last for focus events 2003-03-21 08:17:43 +00:00
Dana Jansens
44889c3c69 MapRequest needs to activate the window 2003-03-19 19:56:53 +00:00
Dana Jansens
89142ea6b4 dont need a mask_list here 2003-03-19 18:55:21 +00:00
Dana Jansens
90e654131d break, dont return 2003-03-19 17:24:47 +00:00
Dana Jansens
0c16988daa add code to make net_active_window events work 2003-03-19 17:24:24 +00:00
Dana Jansens
4732930eec ignore !normal crossing events 2003-03-19 08:19:27 +00:00