diff -Naur pwm-1.0/dock.c pwm-1.0-p6/dock.c --- pwm-1.0/dock.c Mon Jun 12 21:23:47 2000 +++ pwm-1.0-p6/dock.c Sat Jan 18 13:37:03 2003 @@ -21,6 +21,8 @@ static int create_x=0; static int create_y=0; static int create_flags=0; +static int dock_stack=LVL_KEEP_ON_TOP; +static int dock_sticky=WORKSPACE_STICKY; static bool do_create_dock(WDock *dock, int x, int y, int flags) @@ -50,7 +52,7 @@ grab_bindings(win, ACTX_DOCKWIN|ACTX_GLOBAL); - add_winobj((WWinObj*)dock, WORKSPACE_STICKY, LVL_KEEP_ON_TOP); + add_winobj((WWinObj*)dock, dock_sticky, dock_stack); return TRUE; } @@ -73,7 +75,31 @@ create_flags|=DOCK_HORIZONTAL; } - + +void set_dock_stacking(const char *stacking) +{ + if (strcmp(stacking, "above") == 0) + dock_stack=LVL_KEEP_ON_TOP; + else if (strcmp(stacking, "below") == 0) + dock_stack=LVL_KEEP_ON_BOTTOM; + else if (strcmp(stacking, "normal") == 0) + dock_stack=LVL_NORMAL; + else + dock_stack=LVL_KEEP_ON_TOP; +} + + +void set_dock_sticky(const char *sticky) +{ + if (strcmp(sticky, "yes") == 0) + dock_sticky=WORKSPACE_STICKY; + else if (strcmp(sticky, "no") == 0) + dock_sticky=WORKSPACE_CURRENT; + else + dock_sticky=WORKSPACE_STICKY; +} + + static WDock *create_dock(int x, int y, bool horiz) { WDock *dock; diff -Naur pwm-1.0/readconfig.c pwm-1.0-p6/readconfig.c --- pwm-1.0/readconfig.c Sat Jan 18 13:36:07 2003 +++ pwm-1.0-p6/readconfig.c Sat Jan 18 13:10:33 2003 @@ -733,6 +733,32 @@ } +static bool opt_screen_dock_stacking(Tokenizer *tokz, int n, Token *toks) +{ + const char *stacking=TOK_STRING_VAL(&(toks[1])); + + if(tmp_screen==NULL) + return TRUE; + + set_dock_stacking(stacking); + + return TRUE; +} + + +static bool opt_screen_dock_sticky(Tokenizer *tokz, int n, Token *toks) +{ + const char *sticky=TOK_STRING_VAL(&(toks[1])); + + if(tmp_screen==NULL) + return TRUE; + + set_dock_sticky(sticky); + + return TRUE; +} + + static bool do_soundgroup (Token *toks, char **sound) { if(*sound!=NULL){ @@ -1008,6 +1034,8 @@ {"workspaces", "l?l", opt_screen_workspaces, NULL}, {"opaque_move", "l", opt_screen_opaque_move, NULL}, {"dock", "sl", opt_screen_dock, NULL}, + {"dock_stacking", "i", opt_screen_dock_stacking, NULL}, + {"dock_sticky", "i", opt_screen_dock_sticky, NULL}, {"sound_player", "s", opt_sound_player, NULL}, {"start_sound", "s", opt_sound_start, NULL},