Dana Jansens [Mon, 1 Aug 2011 20:50:10 +0000 (16:50 -0400)]
Add Inotify to the release script testing
Dana Jansens [Mon, 4 Oct 2010 18:33:16 +0000 (14:33 -0400)]
Create some Openbox release scripts:
release/bugs: Prints a list of bugs that are mentioned in git commits for a
git revision, since previous release.
- Very useful for updating the CHANGELOG file!
release/go: Tests a git revision for correct compilation, and prepares files
for release.
- Makes the tarball
- Makes a GPG signature for the tarball
- Tags the release
- Spits out URLs to edit and gives the changelog for copy/paste.
release/email: Sends an email to the Openbox mailing list with the changelog
and details about the release. Call this with the same parameters used for
running release/go once it is finished, and the files are uploaded, etc.
- Also emails mikachu re freshmeat.net
Dana Jansens [Fri, 29 Jul 2011 21:35:31 +0000 (17:35 -0400)]
Make empty ObClientSet objects not hold a hash table.
This saves creating one every time we make an empty set (boolean filter
false result)
Dana Jansens [Fri, 29 Jul 2011 21:28:14 +0000 (17:28 -0400)]
make a special "ALL" ObClientSet which contains all clients.
This saves copying all the clients into the set.
IMPORTANT: This client set will test as a "true" boolean regardless of if there
are clients present or not.
- We did this to allow for boolean filters. A boolean filter returns the
"ALL" set for its true value, and an empty set for its false value.
Dana Jansens [Fri, 29 Jul 2011 20:59:16 +0000 (16:59 -0400)]
add the "all" and "target" filters
Dana Jansens [Fri, 29 Jul 2011 20:57:55 +0000 (16:57 -0400)]
Pass a user data to the client_set_reduce/expand function which is given to the
callback.
This lets us pass the filter's context in to its test function along with the
client window, so it can make an intelligent decision about adding/removing
the client from the current set.
Dana Jansens [Fri, 29 Jul 2011 20:52:59 +0000 (16:52 -0400)]
Stick an ObClientSetReduce/ExpandFunc directly in the filter definition.
Saves a redirection to the filter just to go to the client_set_reduce/expand
function.
Dana Jansens [Fri, 29 Jul 2011 20:42:15 +0000 (16:42 -0400)]
Rename actions/all.[ch] and filters/all.[ch] to _all.[ch]
There will actually be an "all" filter so this clashed.
Dana Jansens [Fri, 29 Jul 2011 20:37:41 +0000 (16:37 -0400)]
Actions say what kind of filter they would like by default (one window or all)
Dana Jansens [Fri, 29 Jul 2011 20:18:53 +0000 (16:18 -0400)]
make empty sets still a ObClientSet* structure and not a NULL.
so we can differentient between a missing set and an empty set.
Dana Jansens [Fri, 29 Jul 2011 20:01:11 +0000 (16:01 -0400)]
Use ObClientSet objects in the filter system, so filters work on these sets.
Dana Jansens [Fri, 29 Jul 2011 20:00:02 +0000 (16:00 -0400)]
Add ObClientSet data type. It holds a set of clients !
The sets can be modified by union and intersection, and can have clients
added or removed with a test callback function.
They use a GHashTable underneath.
Dana Jansens [Fri, 29 Jul 2011 19:59:22 +0000 (15:59 -0400)]
Allow client destroy notify functions to be removed based on the data associated with them.
Dana Jansens [Fri, 29 Jul 2011 19:58:35 +0000 (15:58 -0400)]
Keep track of the currently targetted client for user events in event.c/h
Dana Jansens [Fri, 29 Jul 2011 19:08:12 +0000 (15:08 -0400)]
Add filters/all.c which will run startup on all the filters to register them
Dana Jansens [Thu, 28 Jul 2011 19:45:43 +0000 (15:45 -0400)]
Add a generic filter system similar to the action system (not connected to anything yet)
Dana Jansens [Thu, 28 Jul 2011 18:43:55 +0000 (14:43 -0400)]
Rename ObActions* to ObAction* and remove more 3.4-compat action stuff that was missed.
Dana Jansens [Thu, 28 Jul 2011 18:07:22 +0000 (14:07 -0400)]
rm some unused fn defns
Dana Jansens [Thu, 28 Jul 2011 18:05:54 +0000 (14:05 -0400)]
rm the actions_parse* functions which parsed xml actions
Dana Jansens [Thu, 28 Jul 2011 18:03:28 +0000 (14:03 -0400)]
rm some unused struct defns cruft
Dana Jansens [Wed, 27 Jul 2011 20:32:05 +0000 (16:32 -0400)]
Parse ObActionsList*s from the config file (out of the xml for now).
- config.c: use the new actions parser
- actions.c: provide the actions parser a way to create a new action (takes
a hash table of options for it)
- actions/*.c: take a hash table of options instead of an xml subtree
- *: us ObActionsList* instead of a GList* of ObActionAct*s.
TODO:
1. make filters
openbox/filters/*.c
openbox/filters.c as interface to them
store filters in parsed filter tests instead of key/value pairs
2. make action(s) to change config options
includes key and mouse binding
3. rm -rf *xml*
Dana Jansens [Tue, 26 Jul 2011 22:06:42 +0000 (18:06 -0400)]
Add a parser for the action command language.
The parser generates list of actions (complete with filters). The parser isn't
called anywhere yet, and uses the incomplete actions_act_new() function.
TODO:
The filters now are just text string key:value pairs. But they should
become intelligent objects like actions are.
The actions need to change their option parsing from XML to the new key:value
pair lists.
Dana Jansens [Tue, 26 Jul 2011 13:40:52 +0000 (09:40 -0400)]
Fix blocking in inotify reader.
If the inotify reader reads an event and it ends at the same place the read()
ended, then we don't know that there is anything more available, so don't
try read() again until after it has been poll()'d.
Dana Jansens [Sun, 24 Jul 2011 23:41:05 +0000 (19:41 -0400)]
add GNOME environment to the menus for now
Dana Jansens [Sun, 24 Jul 2011 23:40:38 +0000 (19:40 -0400)]
Make OnlyShowIn and NotShowIn work in .desktop file parsing
Dana Jansens [Sun, 24 Jul 2011 23:29:26 +0000 (19:29 -0400)]
Properly build path names for TryExec
Dana Jansens [Sun, 24 Jul 2011 23:19:17 +0000 (19:19 -0400)]
remove debug prints
Dana Jansens [Sun, 24 Jul 2011 22:58:29 +0000 (18:58 -0400)]
Fix memory issues in the apps menu when reconfiguring.
All menu pointers must be given up and recreated every reconfigure. The menu
system destroys all menus on its own.
Dana Jansens [Sun, 24 Jul 2011 22:37:50 +0000 (18:37 -0400)]
On reconfigure, make the apps menu's linkbase refresh.
Dana Jansens [Sun, 24 Jul 2011 22:13:36 +0000 (18:13 -0400)]
Make the obt_watch functionality work without inotify (via manual refreshes).
Adds obt/watch_manual.c which is a filler for when watch_inotify.c can't be
used. Other watch_foo.c may also exist in the future I hope.
Adds obt/watch_interface.h which the inotify (and others) subsystem can use
to call back notification to the main watch system that events have
occured.
Keep track of all files being watched within the main watch system, so that if
a directory disappears, we can report the files inside it being removed.
This change moved a lot of the recursive functionality out from
watch_inotify.c into the main watch.c, making it much more simple and should
help make it much easier to add other watch_foo.c subsystems.
Dana Jansens [Wed, 9 Mar 2011 18:49:11 +0000 (13:49 -0500)]
fix updates in the app menu from the linkbase.
it did not remove things correctly if the linkbase removed something while the
menu was not shown.
it sorted the wrong list.
basically it was buggy. tested now with a duplicate .desktop id in 2 places,
and the menu shows only one copy. updating it while the menu is not shown
correctly updates the menu. updating it while the menu is shown also
correclty updates the menu.
Dana Jansens [Wed, 9 Mar 2011 16:08:19 +0000 (11:08 -0500)]
keep only one version of each .desktop file "id" in the linkbase category lists.
Dana Jansens [Tue, 8 Mar 2011 21:02:14 +0000 (16:02 -0500)]
don't follow pointers after freeing them
Dana Jansens [Thu, 27 Jan 2011 22:31:41 +0000 (17:31 -0500)]
Show all the .desktop links available in the system in the "apps-menu" menu.
They don't do anything, cuz it's problematic to try create an Execute action
from in the code right now.
Dana Jansens [Thu, 27 Jan 2011 22:30:45 +0000 (17:30 -0500)]
add menu_sort_entries() which sorts all entries in an ObMenu
this function sorts each group of entries that appear together between two
consecutive separators (or ends of the list)
Dana Jansens [Thu, 27 Jan 2011 22:29:25 +0000 (17:29 -0500)]
Give info for changes in the update callback from ObtLinkBase
Also provide a function to access all ObtLink objects in a given category.
Dana Jansens [Thu, 27 Jan 2011 22:28:12 +0000 (17:28 -0500)]
specify the encoding of filesystem paths, and include a comparator function
the comparator compares two ObtLink** objects by their names. if the names are
equal it uses the path of the source as a tie-breaker.
Dana Jansens [Thu, 27 Jan 2011 22:27:22 +0000 (17:27 -0500)]
use the filesystem's locale for opening a .desktop file
Dana Jansens [Thu, 27 Jan 2011 22:23:47 +0000 (17:23 -0500)]
Add another BSEARCH function that lets you search through an array of objects.
If you give it a value x, the macro lets you pull a value out of each object
that you want to compare to x.
Dana Jansens [Wed, 26 Jan 2011 23:11:22 +0000 (18:11 -0500)]
Show the list of categories in the apps menus as submenus.
The categories are not based on what you actually have yet but will be soon.
Removed the "main category" notion from the links themselves, they just
publish a list of categories instead. Moved this notion out to the Apps menu
itself. This should make it easy to possibly to customize your set of
visible categories if we should like to do that sometime.
Dana Jansens [Tue, 25 Jan 2011 22:38:47 +0000 (17:38 -0500)]
Store all links in the linkbase grouped by their main category.
Dana Jansens [Tue, 25 Jan 2011 18:40:56 +0000 (13:40 -0500)]
don't free the linkbase on reconfigure
the menu does get freed, so don't free it with the menu.
Dana Jansens [Tue, 25 Jan 2011 18:32:43 +0000 (13:32 -0500)]
skip empty strings when splitting paths in the environment
Dana Jansens [Tue, 25 Jan 2011 18:25:22 +0000 (13:25 -0500)]
don't free lists in the linkbase hash table prematurely.
the values (GSList objects) are freed by the hash table's free function if a
new value is inserted. if we change the list and reinsert it, then it would
cause the list we're inserting to get freed (partially). not good. so instead
we manually free them when we remove them/destroy the hash table.
Dana Jansens [Mon, 24 Jan 2011 22:06:41 +0000 (17:06 -0500)]
WIP: Add an xdg applications menu (it doesn't have anything in it yet, but it does make a linkbase)
Dana Jansens [Mon, 24 Jan 2011 22:05:44 +0000 (17:05 -0500)]
Avoid blocks on read() for inotify.
When we come into the function we don't know how much data is available to
read. So just read a single event and return, so poll can figure out if there
is more for us or not.
Dana Jansens [Mon, 24 Jan 2011 22:00:41 +0000 (17:00 -0500)]
hide the menus before shutting them down on reconfigure
Dana Jansens [Mon, 24 Jan 2011 21:57:37 +0000 (16:57 -0500)]
Move the GSource attach out to the generic watch code, and avoid blocking reads
GLib seems to call the read function sometimes even tho the PollFD's revents
field is empty. So don't read from the fd if this happens.
Dana Jansens [Mon, 24 Jan 2011 21:56:21 +0000 (16:56 -0500)]
Add an optional callback to ObtLinkBase to hear about updates, and fix crash.
Dana Jansens [Mon, 24 Jan 2011 21:45:56 +0000 (16:45 -0500)]
Fix for when the menu's update function returns FALSE and no menu is shown.
The ObMenuFrame was not being freed, and the child pointer was being left
pointing to the frame that was not visible.
Dana Jansens [Mon, 24 Jan 2011 20:13:27 +0000 (15:13 -0500)]
Filter links in a ObtLinkbase by environments.
Store a set of active environments in a linkbase and only include links in the
linkbase that 1) want to be displayed, 2) pass TryExec, 3) match environment
requirements and restrictions.
Dana Jansens [Mon, 24 Jan 2011 20:02:07 +0000 (15:02 -0500)]
add comments
Dana Jansens [Mon, 4 Oct 2010 22:03:36 +0000 (18:03 -0400)]
add --disable option inotify
so we can test compiling without it present
Dana Jansens [Mon, 4 Oct 2010 22:55:03 +0000 (18:55 -0400)]
add a comment
Dana Jansens [Tue, 21 Sep 2010 00:46:37 +0000 (20:46 -0400)]
Linkbase adds all the .desktops in the system, and updates them as they change.
Fixes to .desktop parsing.
Add language/locale support for .desktop files.
Fixes to inotify watching, change what information is passed through the notify handler.
Add linkbase.h to the public obt headers.
Dana Jansens [Mon, 20 Sep 2010 19:47:10 +0000 (15:47 -0400)]
Add linkbase which will keep track of available .desktop files for application launching etc.
Dana Jansens [Mon, 20 Sep 2010 19:45:36 +0000 (15:45 -0400)]
Add/fix inotify support for watching filesystem changes.
obt/watch.h has the interface.
obt/watch.c has the generic watch code.
obt/watch_inotify.c has an inotify-specific backend, which could be replaced with another.
Dana Jansens [Mon, 24 Jan 2011 19:09:49 +0000 (14:09 -0500)]
some missing ifdef HAVE_SYS_INOTIFY
Dana Jansens [Mon, 24 Jan 2011 19:23:46 +0000 (14:23 -0500)]
add an inotify watcher for directories (doesnt work without inotify yet)
Mikael Magnusson [Wed, 3 Aug 2011 21:01:28 +0000 (23:01 +0200)]
Fix a memleak introduced by
0dd91ba0e2382a8f6177f501f8a0b26e0daf26a8, some cleanups
Dana Jansens [Tue, 25 Jan 2011 17:02:42 +0000 (12:02 -0500)]
be a bit more explicit about what is being copied from one texture to another
Carlos Pita [Wed, 12 Jan 2011 23:49:45 +0000 (20:49 -0300)]
Separate theme options for osd prompt buttons.
I managed to keep backwards compatibility without really cluttering
the code so here is the patch
http://bugzilla.icculus.org/show_bug.cgi?id=4874 too.
Please keep in mind that this is my first piece of code for openbox
and that I'm not a die hard openbox user (yet), not to tell the patch
was not exhaustively tested. Anyway I think it's pretty much in a good
shape but any criticism will be welcome.
Basically the patch add the following theme options for controlling
buttons in osd prompts:
%%%% colors
%
% for the text inside the button
osd.button.unpressed.text.color
osd.button.pressed.text.color
osd.button.focused.text.color
%
% for the line art around the button
% (if you don't wan't the box just make box.color = bg.color)
osd.button.pressed.box.color
osd.button.focused.box.color
%%%% textures
%
osd.button.unpressed.bg
osd.button.pressed.bg
osd.button.focused.bg
The buttons can be in three states:
unpressed: neither clicked nor selected
focused: selected but not clicked
pressed: clicked (and of course selected)
I discarded the previous distinction between press and pfocus as in
fact it was only a formal distinction, in that both appearances
mimicked each other in every sense. It think that it was just
inherited from the way titlebar buttons are managed so I decided to
simplify it a bit.
All the options default in a way that preserves backwards compatibility:
osd.button.unpressed.text.color -> osd.active.label.text.color
osd.button.pressed.text.color -> osd.active.label.text.color
osd.button.focused.text.color -> osd.active.label.text.color
osd.button.pressed.box.color -> window.active.button.pressed.image.color
osd.button.focused.box.color -> window.active.button.hover.image.color
osd.button.unpressed.bg -> window.active.button.unpressed.bg
osd.button.pressed.bg -> window.active.button.pressed.bg
osd.button.focused.bg -> window.active.button.hover.bg
Notice that a good deal of locs where added to theme.c but in
compensation prompt.c is pretty much simpler now because the
appearances and textures are created while loading the theme.
Mikael Magnusson [Tue, 2 Aug 2011 20:18:14 +0000 (22:18 +0200)]
Merge branch 'm4/master'
Mikael Magnusson [Tue, 2 Aug 2011 20:17:11 +0000 (22:17 +0200)]
Pedro Beja [Sat, 24 Apr 2010 20:21:23 +0000 (22:21 +0200)]
Update portuguese translation
Mikael Magnusson [Thu, 22 Apr 2010 13:55:13 +0000 (15:55 +0200)]
Update estonian translation
Mikael Magnusson [Sat, 13 Mar 2010 20:57:58 +0000 (21:57 +0100)]
Add Plural-Forms header to fi.po and remove fuzzy mark.
Jakub Łojewski [Thu, 11 Mar 2010 13:29:41 +0000 (14:29 +0100)]
Update polish translation.
Mikael Magnusson [Thu, 14 Oct 2010 14:05:15 +0000 (16:05 +0200)]
Fix some rebase artifacts
Dana Jansens [Mon, 24 Jan 2011 19:06:56 +0000 (14:06 -0500)]
add --disable options for x extensions
so we can test compiling without them present
Og Maciel [Mon, 1 Aug 2011 19:47:00 +0000 (21:47 +0200)]
Update Brazilian Portuguese translation
Dana Jansens [Mon, 1 Aug 2011 17:49:40 +0000 (13:49 -0400)]
add the 3.4.10+ changes to the CHANGELOG
Dana Jansens [Mon, 1 Aug 2011 17:41:44 +0000 (13:41 -0400)]
Add 3.5.0 changes
Mikael Magnusson [Mon, 1 Aug 2011 16:58:03 +0000 (18:58 +0200)]
Update other po files
Mikael Magnusson [Mon, 1 Aug 2011 16:22:16 +0000 (18:22 +0200)]
Update swedish translation
Mikael Magnusson [Tue, 10 May 2011 14:03:33 +0000 (16:03 +0200)]
Fix some translation string markings
Mikael Magnusson [Fri, 16 Apr 2010 15:58:20 +0000 (17:58 +0200)]
Allow setting icons for submenus
Mikael Magnusson [Tue, 10 May 2011 14:03:33 +0000 (16:03 +0200)]
Fix menu placement to avoid dead xinerama areas, possibly break other stuff
Use screen_find_monitor(area) instead of screen_find_monitor_point(
topleft corner) in order to find a better monitor when the menu isn't
opening with the mouse cursor in the top left corner.
I made screen_find_monitor return the primary screen when it failed to
find a monitor containing the rect, instead of the total area, no idea
what behaviour this will change but I doubt it will be worse.
Mikael Magnusson [Sun, 22 May 2011 15:42:34 +0000 (17:42 +0200)]
Link libraries directly to compile on some systems (debian).
If program (A) is linked to library (B) which is linked to library (C),
then A must also link C directly in order to use things from it directly.
Dana Jansens [Sun, 24 Jul 2011 23:39:47 +0000 (19:39 -0400)]
The environments are passed in from the openbox-session script so use them.
Dana Jansens [Fri, 28 Jan 2011 18:25:32 +0000 (13:25 -0500)]
Fix bug #4877 (Some harmless code quirks involving booleans)
Dana Jansens [Tue, 25 Jan 2011 17:02:42 +0000 (12:02 -0500)]
be a bit more explicit about what is being copied from one texture to another
Carlos Pita [Wed, 12 Jan 2011 23:49:45 +0000 (20:49 -0300)]
Separate theme options for osd prompt buttons.
I managed to keep backwards compatibility without really cluttering
the code so here is the patch
http://bugzilla.icculus.org/show_bug.cgi?id=4874 too.
Please keep in mind that this is my first piece of code for openbox
and that I'm not a die hard openbox user (yet), not to tell the patch
was not exhaustively tested. Anyway I think it's pretty much in a good
shape but any criticism will be welcome.
Basically the patch add the following theme options for controlling
buttons in osd prompts:
%%%% colors
%
% for the text inside the button
osd.button.unpressed.text.color
osd.button.pressed.text.color
osd.button.focused.text.color
%
% for the line art around the button
% (if you don't wan't the box just make box.color = bg.color)
osd.button.pressed.box.color
osd.button.focused.box.color
%%%% textures
%
osd.button.unpressed.bg
osd.button.pressed.bg
osd.button.focused.bg
The buttons can be in three states:
unpressed: neither clicked nor selected
focused: selected but not clicked
pressed: clicked (and of course selected)
I discarded the previous distinction between press and pfocus as in
fact it was only a formal distinction, in that both appearances
mimicked each other in every sense. It think that it was just
inherited from the way titlebar buttons are managed so I decided to
simplify it a bit.
All the options default in a way that preserves backwards compatibility:
osd.button.unpressed.text.color -> osd.active.label.text.color
osd.button.pressed.text.color -> osd.active.label.text.color
osd.button.focused.text.color -> osd.active.label.text.color
osd.button.pressed.box.color -> window.active.button.pressed.image.color
osd.button.focused.box.color -> window.active.button.hover.image.color
osd.button.unpressed.bg -> window.active.button.unpressed.bg
osd.button.pressed.bg -> window.active.button.pressed.bg
osd.button.focused.bg -> window.active.button.hover.bg
Notice that a good deal of locs where added to theme.c but in
compensation prompt.c is pretty much simpler now because the
appearances and textures are created while loading the theme.
Dana Jansens [Mon, 1 Aug 2011 15:41:34 +0000 (11:41 -0400)]
move Imlib to the option deps in the git readme
Mikael Magnusson [Sat, 5 Mar 2011 16:44:26 +0000 (17:44 +0100)]
Update note on dependencies wrt autopoint
Dana Jansens [Sat, 23 Jul 2011 22:51:38 +0000 (18:51 -0400)]
Update README.GIT to the packages in current ubuntu distribution and include imlib2
Dana Jansens [Tue, 26 Jul 2011 19:08:35 +0000 (15:08 -0400)]
Comment fix
Dana Jansens [Mon, 1 Aug 2011 15:25:55 +0000 (11:25 -0400)]
bump version to 3.5.0 and library versions
Dana Jansens [Fri, 13 May 2011 19:48:53 +0000 (15:48 -0400)]
Fix Java apps always appearing on desktop 0.
Fake managing a window doesn't read a requested desktop, but ended up placing
a NET_WM_DESKTOP hint on the window (with value 0). Fake managing doesn't
need to set the DESKTOP hint since the window is not actually being managed,
so remove it from the codepath.
Dana Jansens [Wed, 30 Mar 2011 15:23:11 +0000 (11:23 -0400)]
don't re-run the startup command on reconfigure
Dana Jansens [Wed, 30 Mar 2011 15:13:06 +0000 (11:13 -0400)]
fix global autostart installation, and the pointer to it so it is run
Dana Jansens [Tue, 4 Jan 2011 20:13:07 +0000 (15:13 -0500)]
Resizing removes maximization now, so don't only snap "grow to edge" to screen edges.
This caused a serious annoyance when shrinking a maximized window, it would
shrink to the other end of the monitor, effectively reducing it to its minimum
size.
Dana Jansens [Wed, 15 Dec 2010 20:11:33 +0000 (15:11 -0500)]
Fix compiling without sync extension present.
Make waiting_for_sync always present, but it is set to 0 (not waiting) if we aren't using sync.
Dana Jansens [Tue, 9 Nov 2010 01:20:36 +0000 (20:20 -0500)]
Fix regression: hitting a key accel in a menu didn't move focus to the submenu
Dana Jansens [Mon, 8 Nov 2010 18:07:02 +0000 (13:07 -0500)]
Show the submenu and move focus there with the enter key when the submenu isn't shown yet.
Dana Jansens [Thu, 4 Nov 2010 14:12:42 +0000 (10:12 -0400)]
don't free the XIC if it wasn't created. this appears to cause a crash
Dana Jansens [Wed, 20 Oct 2010 19:30:29 +0000 (15:30 -0400)]
cap the client (and frame) window's dimensions at the range of an unsigned short (bug #4596)
Dana Jansens [Sun, 17 Oct 2010 00:16:35 +0000 (20:16 -0400)]
extra \n in debug output
Dana Jansens [Sat, 16 Oct 2010 22:51:09 +0000 (18:51 -0400)]
Move focus to a window when the mouse enters a window during a pointer grab, if using "focus under mouse" (Fixes bug #4617)
Dana Jansens [Sat, 16 Oct 2010 21:36:46 +0000 (17:36 -0400)]
when focus=yes in the per-app settings, then the focus request for the new window is from a user. also if allow_other_desktops is false, then always disallow other desktops (Fixes bug #4752)