diff options
| author | Mikael Magnusson <mikachu@comhem.se> | 2005-09-25 14:45:24 +0000 |
|---|---|---|
| committer | Mikael Magnusson <mikachu@comhem.se> | 2005-09-25 14:45:24 +0000 |
| commit | e1665d70b5efdb930857e6bf629e1e0e3d448806 (patch) | |
| tree | a8b0e6579c015f2d38d1975d51fee25be45767fd /openbox | |
| parent | c7a75a5ca893b10b06deb2f42afc4995cb5cbf1c (diff) | |
add showDelay to dock
Diffstat (limited to 'openbox')
| -rw-r--r-- | openbox/config.c | 4 | ||||
| -rw-r--r-- | openbox/config.h | 2 | ||||
| -rw-r--r-- | openbox/dock.c | 29 |
3 files changed, 27 insertions, 8 deletions
diff --git a/openbox/config.c b/openbox/config.c index c43db935..c7a6246c 100644 --- a/openbox/config.c +++ b/openbox/config.c @@ -57,6 +57,7 @@ gint config_dock_y; ObOrientation config_dock_orient; gboolean config_dock_hide; guint config_dock_hide_delay; +guint config_dock_show_delay; guint config_dock_app_move_button; guint config_dock_app_move_modifiers; @@ -387,6 +388,8 @@ static void parse_dock(ObParseInst *i, xmlDocPtr doc, xmlNodePtr node, config_dock_hide = parse_bool(doc, n); if ((n = parse_find_node("hideDelay", node))) config_dock_hide_delay = parse_int(doc, n) * 1000; + if ((n = parse_find_node("showDelay", node))) + config_dock_show_delay = parse_int(doc, n) * 1000; if ((n = parse_find_node("moveButton", node))) { gchar *str = parse_string(doc, n); guint b, s; @@ -585,6 +588,7 @@ void config_startup(ObParseInst *i) config_dock_orient = OB_ORIENTATION_VERT; config_dock_hide = FALSE; config_dock_hide_delay = 300; + config_dock_show_delay = 300; config_dock_app_move_button = 2; /* middle */ config_dock_app_move_modifiers = 0; diff --git a/openbox/config.h b/openbox/config.h index 5be26ef4..9b92fba6 100644 --- a/openbox/config.h +++ b/openbox/config.h @@ -74,6 +74,8 @@ extern ObOrientation config_dock_orient; extern gboolean config_dock_hide; /*! The number of microseconds to wait before hiding the dock */ extern guint config_dock_hide_delay; +/*! The number of microseconds to wait before showing the dock */ +extern guint config_dock_show_delay; /*! The mouse button to be used to move dock apps */ extern guint config_dock_app_move_button; /*! The modifiers to be used with the button to move dock apps */ diff --git a/openbox/dock.c b/openbox/dock.c index ac09a913..cf8c006b 100644 --- a/openbox/dock.c +++ b/openbox/dock.c @@ -597,17 +597,30 @@ static gboolean hide_timeout(gpointer data) return FALSE; /* don't repeat */ } +static gboolean show_timeout(gpointer data) +{ + /* hide */ + dock->hidden = FALSE; + dock_configure(); + + return FALSE; /* don't repeat */ +} + void dock_hide(gboolean hide) { if (!hide) { - /* show */ - dock->hidden = FALSE; - dock_configure(); - - /* if was hiding, stop it */ - ob_main_loop_timeout_remove(ob_main_loop, hide_timeout); - } else if (!dock->hidden && config_dock_hide) { - ob_main_loop_timeout_add(ob_main_loop, config_dock_hide_delay, + if (dock->hidden && config_dock_hide) { + ob_main_loop_timeout_add(ob_main_loop, config_dock_show_delay, + show_timeout, NULL, NULL); + } else if (!dock->hidden && config_dock_hide) { + ob_main_loop_timeout_remove(ob_main_loop, hide_timeout); + } + } else { + if (!dock->hidden && config_dock_hide) { + ob_main_loop_timeout_add(ob_main_loop, config_dock_hide_delay, hide_timeout, NULL, NULL); + } else if (dock->hidden && config_dock_hide) { + ob_main_loop_timeout_remove(ob_main_loop, show_timeout); + } } } |
