Commit graph

129 commits

Author SHA1 Message Date
Mikael Magnusson
122e2a81d3 Some fixes found by coverity for things used before a null check
In the second case, we actually check the wrong variable.
2014-10-28 05:42:28 +01:00
Peter Åstrand
d6797e53b4 Fix compile failure when X_HAVE_UTF8_STRING is not defined 2014-10-28 04:14:24 +01:00
Dana Jansens
047a201498 Fix bugs and add unit tests for BSEARCH()
Also adds running unit tests to the release/go script so we can be
sure that all tests pass before we make a release.
2013-09-01 15:15:53 -04:00
Dana Jansens
bcfe59fce2 Fix some compiler warnings
Void function should actually be declared void. Not-reached switch
condition should still return something.
2013-08-11 14:43:23 -04:00
Dana Jansens
4e6c0086a6 Add support for loading SVG icons using librsvg.
This adds a configure option --disable-librsvg, but defaults to
using the library if it is present during configure.

When enabled, Openbox will attempt to load svg image files using
the library, similar to how Imlib2 is used for other image
formats.

Since librsvg uses the libXml2 library, their errors end up in
the same global namespace as Openbox config file parsing. To
avoid this, we reset the libXml current error whenever we start
loading a file, and save the last error that occurred when we
are finished, by storing the error in the ObtXmlInst.
2013-08-10 21:59:12 -04:00
Mikael Magnusson
f6fb70a4b9 Remove some evil tabs 2013-04-17 13:23:19 +02:00
Dana Jansens
6eb740cf11 Allow window matching based on the group leader's name and class (Fix bug 5721)
In Openbox 3.4 we used the group leader's WM_CLASS value when it was available.
This prevents windows in the group from overriding with a specific value,
however which is bad. More rationale can be found in
http://icculus.org/pipermail/openbox/2010-September/006790.html

Some applications (eg. Firefox) use command line flags to set the WM_CLASS
property on the group leader but do not change the property on the mapped
windows themselves. This makes matching these windows not possible in Openbox
3.5.

We resolve this by exposing the group's WM_CLASS values alongside the individual
window's values. We add _OB_APP_GROUP_NAME and _OB_APP_GROUP_CLASS properties
along with "groupname" and "classname" attributes for the rc.xml application
tag.
2012-10-06 21:56:56 -04:00
Dana Jansens
dff5276482 Don't strip leading whitespace from menu labels (Fix bug 4782) 2012-09-30 15:53:35 -04:00
Dana Jansens
d58ed5c413 Allow an xml tag to be unregistered from the xml parser. 2012-09-30 14:57:41 -04:00
Dana Jansens
69672e9d07 Properly build path names for obt_paths_try_exec 2012-09-30 14:57:24 -04:00
Dana Jansens
7d32190a4c 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.
2012-09-30 14:50:30 -04:00
Dana Jansens
30fe9697df skip empty strings when splitting paths in the environment 2012-09-30 14:50:30 -04:00
Dana Jansens
be9637e403 Use the KeyCode to directly find the modifier mask. (Fix 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.
2012-09-30 14:48:04 -04:00
Dana Jansens
14deacc8f3 Remove unused variable 2011-10-16 18:51:51 -04:00
Dana Jansens
aa15563fee Propagate _NET_WM_WINDOW_OPACITY to the frame window (bug #5132) 2011-10-16 18:51:51 -04:00
Dana Jansens
f14bf9cac2 don't free the XIC if it wasn't created. this appears to cause a crash 2011-01-24 14:19:23 -05:00
Dana Jansens
80b6d4ac5d XML_PARSE_XINCLUDE flag seems to do nothing. Use xmlXIncludeProcessFlags() instead 2011-01-24 14:19:23 -05:00
Dana Jansens
4f8503c2c5 Allow XIncludes in xml documents we read.
Add the XInclude namespace in the default config file (named "xi")
2011-01-24 14:19:22 -05:00
Dana Jansens
b1fc19711f add some tests for obt pieces (binary search, .desktop parsking, linkbase, and inotify watch) 2011-01-24 14:19:22 -05:00
Dana Jansens
7eeae03f06 oops, crash if searching for something smaller than * in the array 2011-01-24 14:19:22 -05:00
Dana Jansens
5d5714f01e Handle STRING and COMPOUND_TEXT type text properties.
STRING should be latin1 text (plus TAB and LF)
COMPOUND_TEXT should be encoded in the current locale.
2011-01-24 14:19:21 -05:00
Dana Jansens
d3d96b572a Revert "add an inotify watcher for directories (doesnt work without inotify yet)"
This reverts commit c36b89ba12.
2011-01-24 14:18:09 -05:00
Mikael Magnusson
670ff8b4b8 Fix a copypasto that broke interactive keybinds with meta and hyper keys 2010-09-16 17:24:12 +02:00
Mikael Magnusson
eafcc06030 Correct typo occured -> occurred in function name 2010-09-16 17:24:11 +02:00
Dana Jansens
1666d285d7 Add signal handling with the GMainLoop
Provided through a very simplistic interface in obt, found in the
 obt/signal.[ch] files
2010-09-16 17:24:11 +02:00
Dana Jansens
6865e538a3 80 cols 2010-09-16 17:24:11 +02:00
Mikael Magnusson
a1bb01c92e Use a gsource instead of gio channels for watching x events
Fixes not getting some focusin events sometimes.
2010-06-25 13:08:00 +02:00
Dana Jansens
de7c3f466f obt returns libxml2 structures directly, so anyone linking against it better also link to libxml2 2010-06-16 13:26:11 -04:00
Dana Jansens
c36b89ba12 add an inotify watcher for directories (doesnt work without inotify yet) 2010-06-14 12:19:01 -04:00
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
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
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
3997d7aef5 add some comments for binary search 2010-04-16 20:56:27 +02:00
Dana Jansens
3afa20de54 stat() can give an error, handle that 2010-04-16 20:56:24 +02:00
Dana Jansens
262591ec1a add BSEARCH() macros in obt/bsearch.h that to a binary search on an array, use it when searching for a group in obt_paths_try_exec() 2010-03-29 23:24:15 -04:00
Dana Jansens
3121146ecc parse some of the .desktop stuff into an ObtLink structure
localized names still don't work.
most of the app-specific stuff isn't done yet.
categories aren't handled yet (to only show in/not show in some category)
2010-03-29 22:38:05 -04:00
Dana Jansens
67bed35b7c add obt_paths_try_exec() that will see if an executable exists 2010-03-29 22:32:07 -04:00
Dana Jansens
11bb31d3bc figure out what type the value should be for each known .desktop key, and watch for invalid keys 2010-03-25 22:04:48 -04:00
Dana Jansens
0d90bd57ab Add a new ObtLink type, which is going to be a generalization of a .desktop entry.
Move the .desktop file parsing details into obt/ddparse.c, which generates
  some hash tables holding the data of the file.
Add a new obt/link.c which will build an ObtLink from a parsed .desktop file,
  and may support other ways to create these links in the unforseeable future
2010-03-25 21:11:15 -04:00
Dana Jansens
749d6f0938 save key values based on their value, but we dont know what values they have yet 2010-03-25 19:31:57 -04:00