Dana Jansens
fd77a0a7b3
Use GMainLoop instead of ObtMainLoop
2010-06-14 12:19:01 -04:00
Dana Jansens
2e94af28e4
save the list of mime types listed as supported by an application
2010-06-03 13:57:47 -04:00
Dana Jansens
b025a0268f
parse app Categories better. parse a list of strings into a gchar**
2010-06-03 13:53:19 -04:00
Dana Jansens
78a8f407a9
parse Categories tag and save them as an array of GQuarks
2010-06-03 13:09:38 -04:00
Dana Jansens
a6141fe7a4
improved .desktop parsing.
...
properly (and quickly) check for existence of required keys
figure out what an app can open from its exec key
validate the %fields in an app's exec key
2010-06-03 12:10:54 -04:00
Dana Jansens
d9d65b7385
free the user's group ids
2010-06-03 11:58:13 -04:00
Dana Jansens
19e051a466
free the path dirs
2010-06-03 11:56:15 -04:00
Dana Jansens
475961e17f
parse Path, Terminal, and StartupNotify
2010-05-21 20:10:34 -04:00
Dana Jansens
0c8c9caba6
parse OnlyShowIn/NotShowIn
2010-05-21 20:03:21 -04:00
Dana Jansens
632eb08227
allow new windows on other desktops to get focused if specified in a per-app rule
...
you can not client_active() with user=false and desktop=true and activate things on other desktops, by the general focus steal restrictions, if you wanted to do that sorta thing
2010-05-21 16:56:09 -04:00
Mikael Magnusson
fa39954c9d
Allow sending windows on other desktops to the current desktop.
2010-05-20 17:19:05 -04:00
Mikael Magnusson
46ca54fd81
Add some more conditions to the If action
...
It can now match on window titles, virtual desktop (number, "current",
"other"),
demands_attention, and undecoratedness.
2010-05-20 16:19:21 -04:00
Dana Jansens
9734564889
don't need a force_reply when changing the decor for a window
...
it will send a configurenotify if the client's rootwindow position changed
2010-05-20 16:18:04 -04:00
Dana Jansens
4eb9a0c59e
client_update_protocols() doesnt change anything that would affect a client's decor or functions
2010-05-20 16:18:03 -04:00
Dana Jansens
da6753973f
allows a window to unmax by resizing.
...
makes "clever" use of the client's pre_max_area values to allow this to happen
without flashing, and preserving them in case the user cancels the resize
after it has become unmaximized.
2010-05-20 16:18:03 -04:00
Dana Jansens
c129c23691
set the frame's initial size to something invalid so the extents hint will be
...
set for sure the first time.
2010-05-19 21:38:46 -04:00
Dana Jansens
53430914f0
set the interactive action to NULL before doing its cleanup phase
...
if the cleanup ends up cancelling the "current interactive action", it would
cause the end function to be called again, which sucks. for instance if the
cleanup function uses the Focus action. this prevents the unwanted loop
into the interactive action cleanup.
2010-05-17 21:58:44 -04:00
Dana Jansens
9a826d8c3d
fix focus when starting up, especially when replacing another instance of openbox
...
adds a function event_reset_time() that forces event_time() to look for a new (future) timestamp
2010-05-17 20:10:31 -04:00
Dana Jansens
ab7673c816
remove a debug print in the keyboard obt stuff
2010-05-17 19:34:41 -04:00
Dana Jansens
5450618297
avoid new gcc warning (casting ** to const** is not valid for good reason)
2010-05-17 19:31:57 -04:00
Dana Jansens
4463bb6e2f
merge some contexts together in the default rc.xml mouse bindings
2010-05-17 19:31:57 -04:00
Dana Jansens
f307a3feab
allow multiple contexts separated by space in a mouse binding
...
example: context="Top Left Right Bottom"
2010-05-17 19:31:51 -04:00
Dana Jansens
09d1d0434b
turn off focuslast and on undermouse in mouse focus config example
2010-05-17 19:31:21 -04:00
Mikael Magnusson
3374fb2a88
Remove some unneeded stdlib.h includes
2010-05-17 19:31:21 -04:00
Mikael Magnusson
7a679dd198
Add support for using relative expressions in move and resize actions
...
Have MoveResizeTo use config_parse_gravity_coord instead of duplicating it locally
Allow MoveResizeTo positions and sizes and per app positions to be relative to screen size
Rename to config_parse_relative_number so it can be used for sizes too
Add relative numbers to width/height in MoveResizeTo
Add relative numbers to MoveRelative
Add relative numbers to ResizeRelative, these are for the client size, not screen size
2010-05-17 19:31:21 -04:00
Dana Jansens
1c637efcbb
new enum values need to be handled in switches
...
(the new enum values were added to count the number of entries in the enums)
2010-05-17 19:31:21 -04:00
Dana Jansens
925e4c5979
fix typo in enum
2010-05-17 19:31:21 -04:00
Derek Foreman
48ad5f6ccd
add _NUM_TYPES to obrender enums, to allow enumeration of the enum values
2010-05-13 15:10:02 -04:00
Dana Jansens
87443c956c
show empty properties in obxprop
2010-05-11 23:43:29 -04:00
Dana Jansens
dd623f5b2f
parse number values write in a hex string in obxprop
2010-05-11 23:31:03 -04:00
Dana Jansens
013df404a8
advance while parsing a hex input in obxprop
2010-05-11 23:29:18 -04:00
Dana Jansens
6e799ad40d
add cleanup functions to the client list menus that removes everything from them when they are not being shown (saves iterating thru the list uselessly when a client is unmanaged)
2010-05-11 19:01:46 -04:00
Dana Jansens
3fd74abb3c
add cleanup function for menus that fires when the menu is no longer visible
2010-05-11 19:01:33 -04:00
Dana Jansens
523a726c6c
don't try go to selected submenu when there is nothing selected
2010-04-29 16:14:16 -04:00
Dana Jansens
b9b0284e3e
use clicks in prompts
2010-04-28 22:05:44 -04:00
Dana Jansens
cce78e08bb
add a test to set a mouse cursor on an InputOnly subwindow
2010-04-28 14:47:13 -04:00
Dana Jansens
0d98c4fa7c
fix XSYNCronization of resizes (especially with two monitors).
...
1) a ConfigureNotify must always follow a Sync notification
2) determine the final size of the window with its position else struts are not applied properly for (partly) maximized windows
3) set the sync counter to a value when managing a new window
2010-04-28 12:58:46 -04:00
Dana Jansens
b3023ac55b
make sure clients stay on screen when the root window changes size, and maximized/fullscreen windows must be on some monitor or it doesn't make much sense (and asserts)
2010-04-28 12:58:46 -04:00
Mikael Magnusson
145d526df4
Remove two unused variables
...
Remains from 64adc0eeba
2010-04-28 12:58:45 -04:00
Dana Jansens
5e424b81d2
found memory corruption in the obt xqueue and paths
2010-04-28 12:58:45 -04:00
Dana Jansens
55b84316bb
make an event queue for X events. the queue's min size is 16 XEvents (~3k)
2010-04-28 12:58:42 -04:00
Dana Jansens
029628087f
don't put reparent events back on the stack. the window is no longer being managed anyways. and it messes up the order of events in the queue
2010-04-23 11:57:26 -04:00
Dana Jansens
f6e423399d
putting events on the event queue does not send them back to the server. it was just going to get ignored the next time around cuz the window wouldnt be in our list of clients
2010-04-23 11:54:09 -04:00
Dana Jansens
bb97a20777
don't use XPutBackEvent and mess up timestamp order in the event queue
2010-04-23 11:50:24 -04:00
Dana Jansens
72fe65fd22
add asserts to make sure we don't add things to stacking list that are not managed
2010-04-20 15:22:58 -04:00
Dana Jansens
a16449adb6
don't change stacking stuff on windows when moving them during the unmanage phase.
2010-04-20 15:20:46 -04:00
Dana Jansens
197ee0ad47
event_curtime is replaced (publicly) by event_time()
...
This function never returns CurrentTime, which is nice, cuz using CurrentTime for XSetFocus always sucks.
If the current XEvent did not have a timestamp, then event_time() will find one. It finds the first timestamp available in the X event queue, meaning the earliest timestamp >= the current (nontimestamped) event. All future events should have a timestamp >= event_time(), so using this in XSetFocus() should not mess up any future calls we make to it.
This change seems to work well, as it appears to fix bug #3648 .
2010-04-16 22:23:37 -04:00
Dana Jansens
171e476ba3
When determining the current timestamp, try get something a lil more accurate
...
Get the first timestamp from the event queue, rather than (potentially) the
last.
also treat it as the actual event_curtime, meaning it is used when focusing a
newly mapped window etc.
2010-04-16 21:32:38 -04:00
Dana Jansens
550e961c0e
when client removes its transient_for hint, don't keep the window as transient for the group when it shouldn't be (fixes bug #4586 )
2010-04-16 21:32:38 -04:00
Dana Jansens
77ee361f5c
allow warping the mouse pointer when switching desktops by bumping into the edge of the monitor with a window
...
based on a patch by Nathaniel Gephart <computinchuck@gmail.com>
2010-04-16 21:32:38 -04:00