6 years agoMake warnings about parse problems in .desktop files "debug" messages. Most people... dot-desktop
Dana Jansens [Mon, 8 Aug 2011 20:11:05 +0000 (16:11 -0400)]
Make warnings about parse problems in .desktop files "debug" messages. Most people don't care.

6 years agoAdd Inotify to the release script testing
Dana Jansens [Mon, 1 Aug 2011 20:50:10 +0000 (16:50 -0400)]
Add Inotify to the release script testing

6 years agoFix blocking in inotify reader.
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.

6 years agoadd GNOME environment to the menus for now
Dana Jansens [Sun, 24 Jul 2011 23:41:05 +0000 (19:41 -0400)]
add GNOME environment to the menus for now

6 years agoMake OnlyShowIn and NotShowIn work in .desktop file parsing
Dana Jansens [Sun, 24 Jul 2011 23:40:38 +0000 (19:40 -0400)]
Make OnlyShowIn and NotShowIn work in .desktop file parsing

6 years agoremove debug prints
Dana Jansens [Sun, 24 Jul 2011 23:19:17 +0000 (19:19 -0400)]
remove debug prints

6 years agoFix memory issues in the apps menu when reconfiguring.
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.

6 years agoOn reconfigure, make the apps menu's linkbase refresh.
Dana Jansens [Sun, 24 Jul 2011 22:37:50 +0000 (18:37 -0400)]
On reconfigure, make the apps menu's linkbase refresh.

6 years agoMake the obt_watch functionality work without inotify (via manual refreshes).
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
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.

6 years agofix updates in the app menu from the linkbase.
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.

6 years agokeep only one version of each .desktop file "id" in the linkbase category lists.
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.

6 years agodon't follow pointers after freeing them
Dana Jansens [Tue, 8 Mar 2011 21:02:14 +0000 (16:02 -0500)]
don't follow pointers after freeing them

6 years agoShow all the .desktop links available in the system in the "apps-menu" menu.
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.

6 years agoGive info for changes in the update callback from ObtLinkBase
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.

6 years agospecify the encoding of filesystem paths, and include a comparator function
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.

6 years agouse the filesystem's locale for opening a .desktop file
Dana Jansens [Thu, 27 Jan 2011 22:27:22 +0000 (17:27 -0500)]
use the filesystem's locale for opening a .desktop file

6 years agoShow the list of categories in the apps menus as submenus.
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.

6 years agoStore all links in the linkbase grouped by their main category.
Dana Jansens [Tue, 25 Jan 2011 22:38:47 +0000 (17:38 -0500)]
Store all links in the linkbase grouped by their main category.

6 years agodon't free the linkbase on reconfigure
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.

6 years agodon't free lists in the linkbase hash table prematurely.
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.

6 years agoWIP: Add an xdg applications menu (it doesn't have anything in it yet, but it does...
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)

6 years agoAvoid blocks on read() for inotify.
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.

6 years agoMove the GSource attach out to the generic watch code, and avoid blocking reads
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.

6 years agoAdd an optional callback to ObtLinkBase to hear about updates, and fix crash.
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.

6 years agoFilter links in a ObtLinkbase by environments.
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.

6 years agoadd comments
Dana Jansens [Mon, 24 Jan 2011 20:02:07 +0000 (15:02 -0500)]
add comments

6 years agoadd --disable option inotify
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

6 years agoadd a comment
Dana Jansens [Mon, 4 Oct 2010 22:55:03 +0000 (18:55 -0400)]
add a comment

6 years agoLinkbase adds all the .desktops in the system, and updates them as they change.
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.

6 years agoAdd linkbase which will keep track of available .desktop files for application launch...
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.

6 years agoAdd/fix inotify support for watching filesystem changes.
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.

6 years agosome missing ifdef HAVE_SYS_INOTIFY
Dana Jansens [Mon, 24 Jan 2011 19:09:49 +0000 (14:09 -0500)]
some missing ifdef HAVE_SYS_INOTIFY

6 years agoadd an inotify watcher for directories (doesnt work without inotify yet)
Dana Jansens [Mon, 24 Jan 2011 19:23:46 +0000 (14:23 -0500)]
add an inotify watcher for directories (doesnt work without inotify yet)

6 years agoAdd "visible" filter for windows on current desktop.
Dana Jansens [Mon, 24 Oct 2011 23:40:11 +0000 (19:40 -0400)]
Add "visible" filter for windows on current desktop.

6 years agoFix error printing when parsing and save the last error.
Dana Jansens [Sat, 15 Oct 2011 19:11:56 +0000 (15:11 -0400)]
Fix error printing when parsing and save the last error.

Errors would have a line number relative to the string of text being parsed,
but if this is in a larger file, then it's useless. So add a callback that
can modify the line number for parsing things nested in a larger document.

This gives proper errors for parsing actions in the xml config files.

Also, change how errors are given back when creating a new action. Instead of
printing it directly, return an error string so the parser can show what line
the invalid action was found on.

6 years agoAdd obt_xml_file_path() and obt_xml_node_string_raw() and don't return text in child...
Dana Jansens [Sat, 15 Oct 2011 17:43:07 +0000 (13:43 -0400)]
Add obt_xml_file_path() and obt_xml_node_string_raw() and don't return text in child nodes.

6 years agoAdd an action for toggling debug output.
Dana Jansens [Fri, 14 Oct 2011 23:53:06 +0000 (19:53 -0400)]
Add an action for toggling debug output.

- Rename "Debug" action to "Print" for displaying text.
- Add "Debug" action that sets/toggles showing debug messages. It has the
  standard set:<foo> argument where <foo> is on/off/toggle.

6 years agoread the per-app position x/y values from the right xml node
Dana Jansens [Fri, 14 Oct 2011 22:52:20 +0000 (18:52 -0400)]
read the per-app position x/y values from the right xml node

6 years agoAdd SkipTaskbar/SkipPager actions (bug #3334)
Dana Jansens [Fri, 14 Oct 2011 20:46:18 +0000 (16:46 -0400)]
Add SkipTaskbar/SkipPager actions (bug #3334)

6 years agoFix a crash on shutdown/reconfigure. Clean up the registered action filters properly.
Dana Jansens [Fri, 14 Oct 2011 20:42:37 +0000 (16:42 -0400)]
Fix a crash on shutdown/reconfigure.  Clean up the registered action filters properly.

Frees the list and sets the pointer to NULL for empty list.

6 years agoRemove complicated stuff from config_value.c that we're not using at the moment.
Dana Jansens [Mon, 8 Aug 2011 22:02:57 +0000 (18:02 -0400)]
Remove complicated stuff from config_value.c that we're not using at the moment.

6 years agoAdd functions to set the value of an xml node
Dana Jansens [Mon, 8 Aug 2011 21:44:06 +0000 (17:44 -0400)]
Add functions to set the value of an xml node

6 years agoAdd a function to save a cache file (it makes the directory as needed etc).
Dana Jansens [Mon, 8 Aug 2011 21:38:47 +0000 (17:38 -0400)]
Add a function to save a cache file (it makes the directory as needed etc).

6 years agoadd obt_xml_load_cache_file() to load a file in ~/.cache/<domain>/<file>
Dana Jansens [Mon, 8 Aug 2011 20:39:24 +0000 (16:39 -0400)]
add obt_xml_load_cache_file() to load a file in ~/.cache/<domain>/<file>

6 years agoMake the ConfigValue list type into a gchar** string list instead.
Dana Jansens [Mon, 8 Aug 2011 16:35:52 +0000 (12:35 -0400)]
Make the ConfigValue list type into a gchar** string list instead.

1. I don't want to have to deal with nested lists cuz they just don't need to
   happen (now).

6 years agoAdd obt_xml_path_get_list() that returns a list of xml nodes that match the given...
Dana Jansens [Mon, 8 Aug 2011 16:34:17 +0000 (12:34 -0400)]
Add obt_xml_path_get_list() that returns a list of xml nodes that match the given path.


It would return all the b nodes above for the path "foo/b".

6 years agodon't create empty xml nodes when there is no default value given for them. NULL...
Dana Jansens [Mon, 8 Aug 2011 15:33:37 +0000 (11:33 -0400)]
don't create empty xml nodes when there is no default value given for them. NULL != ""

6 years agoTurn the Foo/ToggleFoo/UnFoo actions into a single Foo action with option "set" which...
Dana Jansens [Mon, 8 Aug 2011 14:51:45 +0000 (10:51 -0400)]
Turn the Foo/ToggleFoo/UnFoo actions into a single Foo action with option "set" which is "on", "off", or "toggle"

6 years agoUse ObConfigValue to parse gravity coords, remove parse special functions from config...
Dana Jansens [Sat, 6 Aug 2011 00:54:59 +0000 (20:54 -0400)]
Use ObConfigValue to parse gravity coords, remove parse special functions from config.[ch]

6 years agoRename obt_xml_find_node() to obt_xml_find_sibling(). Add obt_xml_tree_get_node(...
Dana Jansens [Sat, 6 Aug 2011 00:36:51 +0000 (20:36 -0400)]
Rename obt_xml_find_node() to obt_xml_find_sibling(). Add obt_xml_tree_get_node() and xml_tree_delete_node()

6 years agoFix interactive actions with the new action running code.
Dana Jansens [Thu, 4 Aug 2011 17:43:34 +0000 (13:43 -0400)]
Fix interactive actions with the new action running code.

It was running the interactive action init code when running an interactive
action that is already running.

6 years agoRename ObActionValue to ObConfigValue. This holds one of three types.
Dana Jansens [Fri, 5 Aug 2011 15:35:09 +0000 (11:35 -0400)]
Rename ObActionValue to ObConfigValue.  This holds one of three types.

1. A string
2. A list of other ObConfigValues
3. A list of actions (ObActionList).

The string type can be returned in various ways such as int, enum, fraction, gravity coordiate.

Provide a ways to save the ObConfigValue into a pointer.  This lets you keep
the value contained withing the ObConfigValue in a variable of its basic type.

6 years agoregister filters on startup
Dana Jansens [Wed, 3 Aug 2011 21:03:30 +0000 (17:03 -0400)]
register filters on startup

1. write filters for everything in actions/if.c
2. rm actions/if.c
3. make action(s) to change config options?
   includes key and mouse binding
4. rm -rf *xml*?

6 years agoparse filters and actionlists inside an action list correctly
Dana Jansens [Wed, 3 Aug 2011 21:03:11 +0000 (17:03 -0400)]
parse filters and actionlists inside an action list correctly

6 years agoPass a client set to all actions, and make focus cycling use a client set.
Dana Jansens [Wed, 3 Aug 2011 20:58:23 +0000 (16:58 -0400)]
Pass a client set to all actions, and make focus cycling use a client set.

6 years agoProvide operations to get the size of a ObClientSet, and get the clients in it. Also...
Dana Jansens [Wed, 3 Aug 2011 20:57:21 +0000 (16:57 -0400)]
Provide operations to get the size of a ObClientSet, and get the clients in it. Also bug fixes.

6 years agoAdd functions to ObClientSet to run a function on each client in the set, and add...
Dana Jansens [Wed, 3 Aug 2011 15:32:02 +0000 (11:32 -0400)]
Add functions to ObClientSet to run a function on each client in the set, and add constness.
Anything that doesnt change/destroy the given set takes a const ObClientSet*.

6 years agoGenerate a fake leave event on actions that move windows (used to generate another...
Dana Jansens [Tue, 2 Aug 2011 20:28:19 +0000 (16:28 -0400)]
Generate a fake leave event on actions that move windows (used to generate another enter event?)

6 years agoRename the fields in ObActionListRun for clarity
Dana Jansens [Tue, 2 Aug 2011 20:27:33 +0000 (16:27 -0400)]
Rename the fields in ObActionListRun for clarity

6 years agoAdd action_list_run.c/h with action_list_run() and struct ObActionListRun.
Dana Jansens [Tue, 2 Aug 2011 19:55:44 +0000 (15:55 -0400)]
Add action_list_run.c/h with action_list_run() and struct ObActionListRun.

This function runs an action list, taking over from the function that used to
live in action.c.  Now the action.c function will simply run a single action.

The actions and filters now take a const ObActionListRun* which describes
the user event which triggered the actions/filters to run.

The action_list_run() function can also run filters, yay.  However...

1. the filters' client sets are not passed to actions yet. do this.
2. make action(s) to change config options
   includes key and mouse binding
3. rm -rf *xml*

6 years agoAdd a means to duplicate ObClientSet
Dana Jansens [Tue, 2 Aug 2011 18:45:21 +0000 (14:45 -0400)]
Add a means to duplicate ObClientSet

and fix destroy notifications.
- set the destroy notification when making a set with a single window, not
  when making an empty set.
- always add/remove the destroy notification when creating/destroying the hash

6 years agoAdd the minus and contains() operations to ObClientSet, and allow creating a set...
Dana Jansens [Tue, 2 Aug 2011 18:20:14 +0000 (14:20 -0400)]
Add the minus and contains() operations to ObClientSet, and allow creating a set of any single client.

6 years agoFix expand/reduce in the full or empty set cases.
Dana Jansens [Tue, 2 Aug 2011 17:31:23 +0000 (13:31 -0400)]
Fix expand/reduce in the full or empty set cases.

6 years agoMake empty ObClientSet objects not hold a hash table.
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)

6 years agomake a special "ALL" ObClientSet which contains all clients.
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.

6 years agoadd the "all" and "target" filters
Dana Jansens [Fri, 29 Jul 2011 20:59:16 +0000 (16:59 -0400)]
add the "all" and "target" filters

6 years agoPass a user data to the client_set_reduce/expand function which is given to the
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

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.

6 years agoStick an ObClientSetReduce/ExpandFunc directly in the filter definition.
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

6 years agoRename actions/all.[ch] and filters/all.[ch] to _all.[ch]
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.

6 years agoActions say what kind of filter they would like by default (one window or all)
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)

6 years agomake empty sets still a ObClientSet* structure and not a NULL.
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.

6 years agoUse ObClientSet objects in the filter system, so filters work on these sets.
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.

6 years agoAdd ObClientSet data type. It holds a set of clients !
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.

6 years agoKeep track of the currently targetted client for user events in event.c/h
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

6 years agoAdd filters/all.c which will run startup on all the filters to register them
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

6 years agoAdd a generic filter system similar to the action system (not connected to anything...
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)

6 years agoRename ObActions* to ObAction* and remove more 3.4-compat action stuff that was missed.
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.

6 years agorm some unused fn defns
Dana Jansens [Thu, 28 Jul 2011 18:07:22 +0000 (14:07 -0400)]
rm some unused fn defns

6 years agorm the actions_parse* functions which parsed xml actions
Dana Jansens [Thu, 28 Jul 2011 18:05:54 +0000 (14:05 -0400)]
rm the actions_parse* functions which parsed xml actions

6 years agorm some unused struct defns cruft
Dana Jansens [Thu, 28 Jul 2011 18:03:28 +0000 (14:03 -0400)]
rm some unused struct defns cruft

6 years agoParse ObActionsList*s from the config file (out of the xml for now).
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.

1. make filters
  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*

6 years agoAdd a parser for the action command language.
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.

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.

6 years agoLink X into libobt (Fixes compile on debian).
Dana Jansens [Thu, 27 Oct 2011 17:29:30 +0000 (13:29 -0400)]
Link X into libobt (Fixes compile on debian).

6 years agoIgnore enters on windows that are raised over focused window while being mapped.
Dana Jansens [Wed, 26 Oct 2011 14:30:37 +0000 (10:30 -0400)]
Ignore enters on windows that are raised over focused window while being mapped.

6 years agoUse the KeyCode to directly find the modifier mask. (bug #5173)
Dana Jansens [Sun, 16 Oct 2011 15:50:15 +0000 (11:50 -0400)]
Use the KeyCode to directly find the modifier mask. (bug #5173)

We were finding the KeySym first, and then converting back to a modifier mask.
But KeySym on a key's release can differ from on its press, and we don't need
them to determine the modmask from the keycode.

[setxkbmap -option "grp:shifts_toggle"] turns Shift_L into XK_ISO_Prev_Group on
key release, and Shift_R into XK_ISO_Next_Group.

Dana Jansens [Sun, 16 Oct 2011 15:13:14 +0000 (11:13 -0400)]

6 years agoDon't make desktop switching interactive when no mods used. (bug #5203)
Dana Jansens [Sun, 16 Oct 2011 15:10:14 +0000 (11:10 -0400)]
Don't make desktop switching interactive when no mods used. (bug #5203)

Make mod state passing more consistent, and always give actions the full state
instead of stripping sometimes. (They ended up expecting it stripped always).

6 years agoPick the monitor most relevant to a rectangle more cleverly.
Dana Jansens [Sun, 16 Oct 2011 03:04:21 +0000 (23:04 -0400)]
Pick the monitor most relevant to a rectangle more cleverly.

When monitors overlap (this happens with cloning), we were choosing a monitor
to associate with a window, for maximization for example, somewhat arbitrarily.

Now we have a more clever algorithm that considers the configured primary
monitor first, and that does not prefer monitors based on their sizes, but only
only how much of the window is in the monitor, excluding parts that were claimed
by another monitor already.

6 years agoSelect the menu item under the mouse when the mouse is moved (bug #5237)
Dana Jansens [Sat, 15 Oct 2011 00:48:54 +0000 (20:48 -0400)]
Select the menu item under the mouse when the mouse is moved (bug #5237)

6 years agoMake ResizeRelative resize in terms of pixels for windows with resize increments...
Dana Jansens [Fri, 14 Oct 2011 23:42:37 +0000 (19:42 -0400)]
Make ResizeRelative resize in terms of pixels for windows with resize increments (bug #5228)

If the resize is less than the window's resize increment then we bump it up
to ensure a resize does at least happen.

6 years agoMake the inactive osd text color fall back to the old osd property, and lastly inheri...
Dana Jansens [Mon, 8 Aug 2011 19:42:48 +0000 (15:42 -0400)]
Make the inactive osd text color fall back to the old osd property, and lastly inherit from the unfocused window color.

6 years agoAllow an xml tag to be unregistered from the xml parser.
Dana Jansens [Fri, 5 Aug 2011 15:00:53 +0000 (11:00 -0400)]
Allow an xml tag to be unregistered from the xml parser.

6 years agoFix release scripts: test en .po files for correct version. correctly find previous...
Dana Jansens [Wed, 3 Aug 2011 21:26:43 +0000 (17:26 -0400)]
Fix release scripts: test en .po files for correct version. correctly find previous version tag in git and display it.

6 years agoFix prompt cleanup (was not going through the list correctly when freeing items)
Dana Jansens [Tue, 2 Aug 2011 19:53:42 +0000 (15:53 -0400)]
Fix prompt cleanup (was not going through the list correctly when freeing items)

6 years agoCreate some Openbox release scripts:
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

6 years agoAllow client destroy notify functions to be removed based on the data associated...
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.

6 years agoProperly build path names for TryExec
Dana Jansens [Sun, 24 Jul 2011 23:29:26 +0000 (19:29 -0400)]
Properly build path names for TryExec

6 years agoadd menu_sort_entries() which sorts all entries in an ObMenu
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)

6 years agoAdd another BSEARCH function that lets you search through an array of objects.
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.

6 years agoskip empty strings when splitting paths in the environment
Dana Jansens [Tue, 25 Jan 2011 18:32:43 +0000 (13:32 -0500)]
skip empty strings when splitting paths in the environment