11 years agodefault for menu overlap
Dave Foster [Wed, 13 Oct 2010 00:44:43 +0000 (20:44 -0400)]
default for menu overlap

11 years agoRemoved trailing spaces and fixed to 80 column width.
Dave Foster [Tue, 11 Sep 2007 17:53:27 +0000 (13:53 -0400)]
Removed trailing spaces and fixed to 80 column width.

11 years agoREAD_APPEARANCE* macros and code cleanups.
Dave Foster [Fri, 31 Aug 2007 15:52:55 +0000 (11:52 -0400)]
READ_APPEARANCE* macros and code cleanups.

11 years agoREAD_COLOR macros done, RrColorCopy added, indentation fixed.
Dave Foster [Fri, 31 Aug 2007 03:11:38 +0000 (23:11 -0400)]
READ_COLOR macros done, RrColorCopy added, indentation fixed.

11 years agoREAD_INT macro.
Dave Foster [Thu, 30 Aug 2007 19:46:53 +0000 (15:46 -0400)]
READ_INT macro.

11 years agofix make distcheck
Dana Jansens [Mon, 4 Oct 2010 21:30:22 +0000 (17:30 -0400)]
fix make distcheck

11 years agoglib can't handle -Wcast-qual
Dana Jansens [Thu, 16 Sep 2010 18:52:09 +0000 (14:52 -0400)]
glib can't handle -Wcast-qual

11 years agoadd wmhints test that toggles motif decor hints on a mapped window
Dana Jansens [Thu, 16 Sep 2010 17:50:11 +0000 (13:50 -0400)]
add wmhints test that toggles motif decor hints on a mapped window

11 years agoFix a double free when you have a mousebind without a button attribute
Mikael Magnusson [Mon, 16 Aug 2010 01:08:56 +0000 (03:08 +0200)]
Fix a double free when you have a mousebind without a button attribute

Introduced in f307a3feabedd9bcadeaafd0fa8e1b1a60736eb2

11 years agoFix a copypasto that broke interactive keybinds with meta and hyper keys
Mikael Magnusson [Tue, 10 Aug 2010 21:01:11 +0000 (23:01 +0200)]
Fix a copypasto that broke interactive keybinds with meta and hyper keys

11 years agoRevert "add XFlush to g_timeout callbacks"
Dana Jansens [Sat, 10 Jul 2010 03:58:21 +0000 (20:58 -0700)]
Revert "add XFlush to g_timeout callbacks"

This reverts commit aa3685d16af4a565eecdc39047ee8d140ef5cd99.

Mika's commit using a GSource to handle X Events fixes this problem, so this
commit is not needed

11 years agoFix 3.4 compatibility for SendToDesktop
Mikael Magnusson [Thu, 1 Jul 2010 13:17:02 +0000 (15:17 +0200)]
Fix 3.4 compatibility for SendToDesktop

11 years agoCorrect typo occured -> occurred in function name
Mikael Magnusson [Wed, 30 Jun 2010 10:47:16 +0000 (12:47 +0200)]
Correct typo occured -> occurred in function name

11 years agoAdd signal handling with the GMainLoop
Dana Jansens [Sun, 27 Jun 2010 16:02:44 +0000 (12:02 -0400)]
Add signal handling with the GMainLoop

Provided through a very simplistic interface in obt, found in the
 obt/signal.[ch] files

11 years agoadd stackabove test, that lets you move a client window just above a specified window...
Dana Jansens [Sun, 27 Jun 2010 13:38:50 +0000 (09:38 -0400)]
add stackabove test, that lets you move a client window just above a specified window in the stacking order

11 years ago80 cols
Dana Jansens [Sat, 26 Jun 2010 22:59:16 +0000 (00:59 +0200)]
80 cols

11 years agoContinue parsing contexts when an unsupported one is encountered
Mikael Magnusson [Sat, 26 Jun 2010 14:08:30 +0000 (16:08 +0200)]
Continue parsing contexts when an unsupported one is encountered

11 years agoMake the dock a context and add actions LowerDock and RaiseDock
Mikael Magnusson [Sat, 26 Jun 2010 13:55:40 +0000 (15:55 +0200)]
Make the dock a context and add actions LowerDock and RaiseDock

11 years agoMove usage of iconh into the branch that assigns it
Mikael Magnusson [Sat, 26 Jun 2010 11:55:39 +0000 (13:55 +0200)]
Move usage of iconh into the branch that assigns it

11 years agosettings can't be NULL here, or we'd have already crashed anyway
Mikael Magnusson [Sat, 26 Jun 2010 11:45:45 +0000 (13:45 +0200)]
settings can't be NULL here, or we'd have already crashed anyway

11 years agoUse a gsource instead of gio channels for watching x events
Mikael Magnusson [Fri, 25 Jun 2010 11:04:39 +0000 (13:04 +0200)]
Use a gsource instead of gio channels for watching x events

Fixes not getting some focusin events sometimes.

11 years agoobt returns libxml2 structures directly, so anyone linking against it better also...
Dana Jansens [Wed, 16 Jun 2010 17:25:39 +0000 (13:25 -0400)]
obt returns libxml2 structures directly, so anyone linking against it better also link to libxml2

11 years agoadd XFlush to g_timeout callbacks
Dana Jansens [Mon, 14 Jun 2010 17:52:21 +0000 (13:52 -0400)]
add XFlush to g_timeout callbacks

GMainLoop doesn't cause an flush to occur after handling a timeout.

11 years agoFix the EXTENTS reported on window frames.
Dana Jansens [Mon, 14 Jun 2010 16:15:02 +0000 (12:15 -0400)]
Fix the EXTENTS reported on window frames.

Change the order things are done on map, so we apply startup state without
  any states set first, thus getting all the functions possible for the window
  type etc.  then change the order states are applied, as some remove the
  ability to apply others (ie fullscreen comes last).
Add an oldsize to ObFrame that remembers the size of the frame last reported to
  the world through the EXTENTS property.  If you frame_adjust_area(FAKE) then
  frame_adjust_area(NONFAKE), the EXTENTS would not be updated since the
  oldsize wasn't remembered across fake updates.
Make the extentsrequest test ask about windows with states set also.

11 years agokeep stacking_list_tail a pointer to the tail of the stacking list
Dana Jansens [Wed, 9 Jun 2010 14:38:55 +0000 (10:38 -0400)]
keep stacking_list_tail a pointer to the tail of the stacking list

11 years agoallow a user to set "undecorated" on a window without decorations
Dana Jansens [Wed, 9 Jun 2010 13:31:06 +0000 (09:31 -0400)]
allow a user to set "undecorated" on a window without decorations

if not based on window type, the app may decide to have decorations again
sometime.  this was not always legal but chromium has made it so.

11 years agoadd an inotify watcher for directories (doesnt work without inotify yet)
Dana Jansens [Thu, 3 Jun 2010 20:08:18 +0000 (16:08 -0400)]
add an inotify watcher for directories (doesnt work without inotify yet)

11 years agoUse GMainLoop instead of ObtMainLoop
Dana Jansens [Tue, 8 Jun 2010 21:50:23 +0000 (17:50 -0400)]
Use GMainLoop instead of ObtMainLoop

11 years agosave the list of mime types listed as supported by an application
Dana Jansens [Thu, 3 Jun 2010 17:57:47 +0000 (13:57 -0400)]
save the list of mime types listed as supported by an application

11 years agoparse app Categories better. parse a list of strings into a gchar**
Dana Jansens [Thu, 3 Jun 2010 17:53:19 +0000 (13:53 -0400)]
parse app Categories better.  parse a list of strings into a gchar**

11 years agoparse Categories tag and save them as an array of GQuarks
Dana Jansens [Thu, 3 Jun 2010 17:09:38 +0000 (13:09 -0400)]
parse Categories tag and save them as an array of GQuarks

11 years agoimproved .desktop parsing.
Dana Jansens [Thu, 3 Jun 2010 16:10:54 +0000 (12:10 -0400)]
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

11 years agofree the user's group ids
Dana Jansens [Thu, 3 Jun 2010 15:58:13 +0000 (11:58 -0400)]
free the user's group ids

11 years agofree the path dirs
Dana Jansens [Thu, 3 Jun 2010 15:56:15 +0000 (11:56 -0400)]
free the path dirs

11 years agoparse Path, Terminal, and StartupNotify
Dana Jansens [Sat, 22 May 2010 00:10:34 +0000 (20:10 -0400)]
parse Path, Terminal, and StartupNotify

11 years agoparse OnlyShowIn/NotShowIn
Dana Jansens [Sat, 22 May 2010 00:03:21 +0000 (20:03 -0400)]
parse OnlyShowIn/NotShowIn

11 years agoallow new windows on other desktops to get focused if specified in a per-app rule
Dana Jansens [Fri, 21 May 2010 20:51:45 +0000 (16:51 -0400)]
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

11 years agoAllow sending windows on other desktops to the current desktop.
Mikael Magnusson [Thu, 6 Mar 2008 19:06:38 +0000 (20:06 +0100)]
Allow sending windows on other desktops to the current desktop.

11 years agoAdd some more conditions to the If action
Mikael Magnusson [Sat, 1 Mar 2008 15:42:06 +0000 (16:42 +0100)]
Add some more conditions to the If action

It can now match on window titles, virtual desktop (number, "current",
demands_attention, and undecoratedness.

11 years agodon't need a force_reply when changing the decor for a window
Dana Jansens [Thu, 20 May 2010 01:27:40 +0000 (21:27 -0400)]
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

11 years agoclient_update_protocols() doesnt change anything that would affect a client's decor...
Dana Jansens [Thu, 20 May 2010 01:05:14 +0000 (21:05 -0400)]
client_update_protocols() doesnt change anything that would affect a client's decor or functions

11 years agoallows a window to unmax by resizing.
Dana Jansens [Tue, 18 May 2010 22:47:54 +0000 (18:47 -0400)]
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.

11 years agoset the frame's initial size to something invalid so the extents hint will be
Dana Jansens [Wed, 19 May 2010 20:11:59 +0000 (16:11 -0400)]
set the frame's initial size to something invalid so the extents hint will be
set for sure the first time.

11 years agoset the interactive action to NULL before doing its cleanup phase
Dana Jansens [Tue, 18 May 2010 01:58:44 +0000 (21:58 -0400)]
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.

11 years agofix focus when starting up, especially when replacing another instance of openbox
Dana Jansens [Tue, 18 May 2010 00:10:06 +0000 (20:10 -0400)]
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

11 years agoremove a debug print in the keyboard obt stuff
Dana Jansens [Mon, 17 May 2010 23:34:41 +0000 (19:34 -0400)]
remove a debug print in the keyboard obt stuff

11 years agoavoid new gcc warning (casting ** to const** is not valid for good reason)
Dana Jansens [Mon, 17 May 2010 23:04:06 +0000 (19:04 -0400)]
avoid new gcc warning (casting ** to const** is not valid for good reason)

11 years agomerge some contexts together in the default rc.xml mouse bindings
Dana Jansens [Mon, 17 May 2010 23:28:27 +0000 (19:28 -0400)]
merge some contexts together in the default rc.xml mouse bindings

11 years agoallow multiple contexts separated by space in a mouse binding
Dana Jansens [Fri, 14 May 2010 02:16:44 +0000 (22:16 -0400)]
allow multiple contexts separated by space in a mouse binding

example: context="Top Left Right Bottom"

11 years agoturn off focuslast and on undermouse in mouse focus config example
Dana Jansens [Thu, 13 May 2010 22:10:30 +0000 (18:10 -0400)]
turn off focuslast and on undermouse in mouse focus config example

11 years agoRemove some unneeded stdlib.h includes
Mikael Magnusson [Fri, 16 Apr 2010 06:37:42 +0000 (08:37 +0200)]
Remove some unneeded stdlib.h includes

11 years agoAdd support for using relative expressions in move and resize actions
Mikael Magnusson [Fri, 16 Apr 2010 16:04:24 +0000 (18:04 +0200)]
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

11 years agonew enum values need to be handled in switches
Dana Jansens [Mon, 17 May 2010 22:39:55 +0000 (18:39 -0400)]
new enum values need to be handled in switches

(the new enum values were added to count the number of entries in the enums)

11 years agofix typo in enum
Dana Jansens [Mon, 17 May 2010 22:39:22 +0000 (18:39 -0400)]
fix typo in enum

11 years agoadd _NUM_TYPES to obrender enums, to allow enumeration of the enum values
Derek Foreman [Thu, 13 May 2010 19:10:02 +0000 (15:10 -0400)]
add _NUM_TYPES to obrender enums, to allow enumeration of the enum values

11 years agoshow empty properties in obxprop
Dana Jansens [Wed, 12 May 2010 03:43:29 +0000 (23:43 -0400)]
show empty properties in obxprop

11 years agoparse number values write in a hex string in obxprop
Dana Jansens [Wed, 12 May 2010 03:31:03 +0000 (23:31 -0400)]
parse number values write in a hex string in obxprop

11 years agoadvance while parsing a hex input in obxprop
Dana Jansens [Wed, 12 May 2010 03:29:18 +0000 (23:29 -0400)]
advance while parsing a hex input in obxprop

11 years agoadd cleanup functions to the client list menus that removes everything from them...
Dana Jansens [Tue, 11 May 2010 23:01:46 +0000 (19:01 -0400)]
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)

11 years agoadd cleanup function for menus that fires when the menu is no longer visible
Dana Jansens [Tue, 11 May 2010 23:01:33 +0000 (19:01 -0400)]
add cleanup function for menus that fires when the menu is no longer visible

11 years agodon't try go to selected submenu when there is nothing selected
Dana Jansens [Thu, 29 Apr 2010 20:11:17 +0000 (16:11 -0400)]
don't try go to selected submenu when there is nothing selected

11 years agouse clicks in prompts
Dana Jansens [Thu, 29 Apr 2010 02:05:06 +0000 (22:05 -0400)]
use clicks in prompts

11 years agoadd a test to set a mouse cursor on an InputOnly subwindow
Dana Jansens [Wed, 28 Apr 2010 18:47:13 +0000 (14:47 -0400)]
add a test to set a mouse cursor on an InputOnly subwindow

11 years agofix XSYNCronization of resizes (especially with two monitors).
Dana Jansens [Tue, 27 Apr 2010 22:45:22 +0000 (18:45 -0400)]
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

11 years agomake sure clients stay on screen when the root window changes size, and maximized...
Dana Jansens [Tue, 27 Apr 2010 21:24:51 +0000 (17:24 -0400)]
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)

11 years agoRemove two unused variables
Mikael Magnusson [Tue, 27 Apr 2010 14:41:06 +0000 (16:41 +0200)]
Remove two unused variables

Remains from 64adc0eeba598cb1469b2140777fba30e3053f0e

11 years agofound memory corruption in the obt xqueue and paths
Dana Jansens [Wed, 28 Apr 2010 14:59:42 +0000 (10:59 -0400)]
found memory corruption in the obt xqueue and paths

11 years agomake an event queue for X events. the queue's min size is 16 XEvents (~3k)
Dana Jansens [Wed, 28 Apr 2010 16:57:51 +0000 (12:57 -0400)]
make an event queue for X events.  the queue's min size is 16 XEvents (~3k)

11 years agodon't put reparent events back on the stack. the window is no longer being managed...
Dana Jansens [Fri, 23 Apr 2010 15:57:26 +0000 (11:57 -0400)]
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

11 years agoputting events on the event queue does not send them back to the server. it was...
Dana Jansens [Fri, 23 Apr 2010 15:54:09 +0000 (11:54 -0400)]
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

11 years agodon't use XPutBackEvent and mess up timestamp order in the event queue
Dana Jansens [Fri, 23 Apr 2010 15:50:24 +0000 (11:50 -0400)]
don't use XPutBackEvent and mess up timestamp order in the event queue

11 years agoadd asserts to make sure we don't add things to stacking list that are not managed
Dana Jansens [Tue, 20 Apr 2010 19:22:58 +0000 (15:22 -0400)]
add asserts to make sure we don't add things to stacking list that are not managed

11 years agodon't change stacking stuff on windows when moving them during the unmanage phase.
Dana Jansens [Tue, 20 Apr 2010 19:20:46 +0000 (15:20 -0400)]
don't change stacking stuff on windows when moving them during the unmanage phase.

11 years agoevent_curtime is replaced (publicly) by event_time()
Dana Jansens [Sat, 17 Apr 2010 02:23:37 +0000 (22:23 -0400)]
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.

11 years agoWhen determining the current timestamp, try get something a lil more accurate
Dana Jansens [Sat, 17 Apr 2010 01:19:50 +0000 (21:19 -0400)]
When determining the current timestamp, try get something a lil more accurate

Get the first timestamp from the event queue, rather than (potentially) the
also treat it as the actual event_curtime, meaning it is used when focusing a
  newly mapped window etc.

11 years agowhen client removes its transient_for hint, don't keep the window as transient for...
Dana Jansens [Sat, 17 Apr 2010 00:35:04 +0000 (20:35 -0400)]
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)

11 years agoallow warping the mouse pointer when switching desktops by bumping into the edge...
Dana Jansens [Fri, 16 Apr 2010 22:55:33 +0000 (18:55 -0400)]
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>

11 years agoshow the focus cycle popup's icons in linear order when cycling in linear order ...
Dana Jansens [Fri, 16 Apr 2010 22:41:08 +0000 (18:41 -0400)]
show the focus cycle popup's icons in linear order when cycling in linear order (bug #2319)

11 years agoadd an option to next/previous window to only include hilited/flashing/urgent windows...
Dana Jansens [Fri, 16 Apr 2010 22:17:05 +0000 (18:17 -0400)]
add an option to next/previous window to only include hilited/flashing/urgent windows (feature req/bug #4341)

11 years agoLink libobrender, not openbox, to imlib2
Mikael Magnusson [Sun, 14 Mar 2010 14:28:27 +0000 (15:28 +0100)]
Link libobrender, not openbox, to imlib2

11 years agoadd some comments for binary search
Dana Jansens [Fri, 16 Apr 2010 15:46:52 +0000 (11:46 -0400)]
add some comments for binary search

11 years agostat() can give an error, handle that
Dana Jansens [Fri, 16 Apr 2010 15:41:13 +0000 (11:41 -0400)]
stat() can give an error, handle that

11 years agouse const Rect* not Rect const*
Dana Jansens [Fri, 16 Apr 2010 15:31:22 +0000 (11:31 -0400)]
use const Rect* not Rect const*

11 years agoadd BSEARCH() macros in obt/bsearch.h that to a binary search on an array, use it...
Dana Jansens [Tue, 30 Mar 2010 03:21:22 +0000 (23:21 -0400)]
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()

11 years agoparse some of the .desktop stuff into an ObtLink structure
Dana Jansens [Tue, 30 Mar 2010 02:38:05 +0000 (22:38 -0400)]
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)

11 years agoadd obt_paths_try_exec() that will see if an executable exists
Dana Jansens [Tue, 30 Mar 2010 02:32:07 +0000 (22:32 -0400)]
add obt_paths_try_exec() that will see if an executable exists

11 years agosave the LC_MESSAGES locale category
Dana Jansens [Tue, 30 Mar 2010 01:22:19 +0000 (21:22 -0400)]
save the LC_MESSAGES locale category

11 years agoif a launch time isnt there (like for client_activate) assume the window launched...
Dana Jansens [Tue, 30 Mar 2010 00:36:35 +0000 (20:36 -0400)]
if a launch time isnt there (like for client_activate) assume the window launched before the last desktop switch, not after. ie don't change desktops if you're not sure.

11 years agomake keypad enter do the same thing as return
Dana Jansens [Fri, 26 Mar 2010 02:17:05 +0000 (22:17 -0400)]
make keypad enter do the same thing as return

11 years agofigure out what type the value should be for each known .desktop key, and watch for...
Dana Jansens [Fri, 26 Mar 2010 02:03:55 +0000 (22:03 -0400)]
figure out what type the value should be for each known .desktop key, and watch for invalid keys

11 years agoAdd a new ObtLink type, which is going to be a generalization of a .desktop entry.
Dana Jansens [Fri, 26 Mar 2010 01:10:45 +0000 (21:10 -0400)]
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

11 years agoignore the rendertest executable
Dana Jansens [Fri, 26 Mar 2010 01:09:20 +0000 (21:09 -0400)]
ignore the rendertest executable

11 years agoignore generated autostart script
Dana Jansens [Fri, 26 Mar 2010 01:08:55 +0000 (21:08 -0400)]
ignore generated autostart script

11 years agosave key values based on their value, but we dont know what values they have yet
Dana Jansens [Thu, 25 Mar 2010 23:31:57 +0000 (19:31 -0400)]
save key values based on their value, but we dont know what values they have yet

11 years agoadd an empty function to parse the Desktop Entry group in a .desktop file
Dana Jansens [Thu, 25 Mar 2010 02:09:58 +0000 (22:09 -0400)]
add an empty function to parse the Desktop Entry group in a .desktop file

11 years agoparse key/value pairs from the .desktop file and save them in a hashtable
Dana Jansens [Thu, 25 Mar 2010 01:58:49 +0000 (21:58 -0400)]
parse key/value pairs from the .desktop file and save them in a hashtable

11 years agoclose the .desktop file after parsing it
Dana Jansens [Thu, 25 Mar 2010 01:58:32 +0000 (21:58 -0400)]
close the .desktop file after parsing it

11 years agofree the path after done with it
Dana Jansens [Thu, 25 Mar 2010 01:50:10 +0000 (21:50 -0400)]
free the path after done with it

11 years agog_warning adds a \n
Dana Jansens [Thu, 25 Mar 2010 01:37:41 +0000 (21:37 -0400)]
g_warning adds a \n

11 years agowatch for groups in .desktop files and remember the current group. validate the names...
Dana Jansens [Thu, 25 Mar 2010 00:04:41 +0000 (20:04 -0400)]
watch for groups in .desktop files and remember the current group. validate the names, and make sure no duplicates and "Desktop Entry" comes first