]> Dogcows Code - chaz/openbox/blobdiff - openbox/dock.c
export if the keyboard and pointer are currently grabbed or not
[chaz/openbox] / openbox / dock.c
index 1df377b0a07b46b662d29902c7857035af04bfcb..f14922401c8c040d688cfe1a6a2c873008f92e29 100644 (file)
@@ -1,3 +1,21 @@
+/* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*-
+
+   dock.c for the Openbox window manager
+   Copyright (c) 2003        Ben Jansens
+
+   This program is free software; you can redistribute it and/or modify
+   it under the terms of the GNU General Public License as published by
+   the Free Software Foundation; either version 2 of the License, or
+   (at your option) any later version.
+
+   This program is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+   GNU General Public License for more details.
+
+   See the COPYING file for a copy of the GNU General Public License.
+*/
+
 #include "debug.h"
 #include "dock.h"
 #include "mainloop.h"
@@ -21,6 +39,7 @@ void dock_startup(gboolean reconfig)
     XSetWindowAttributes attrib;
 
     if (reconfig) {
+        stacking_add(DOCK_AS_WINDOW(dock));
         dock_configure();
         return;
     }
@@ -48,12 +67,14 @@ void dock_startup(gboolean reconfig)
 
     g_hash_table_insert(window_map, &dock->frame, dock);
     stacking_add(DOCK_AS_WINDOW(dock));
-    stacking_raise(DOCK_AS_WINDOW(dock));
 }
 
 void dock_shutdown(gboolean reconfig)
 {
-    if (reconfig) return;
+    if (reconfig) {
+        stacking_remove(DOCK_AS_WINDOW(dock));
+        return;
+    }
 
     XDestroyWindow(ob_display, dock->frame);
     RrAppearanceFree(dock->a_frame);
@@ -547,8 +568,6 @@ static gboolean hide_timeout(gpointer data)
 
 void dock_hide(gboolean hide)
 {
-    if (dock->hidden == hide || !config_dock_hide)
-        return;
     if (!hide) {
         /* show */
         dock->hidden = FALSE;
@@ -556,8 +575,8 @@ void dock_hide(gboolean hide)
 
         /* if was hiding, stop it */
         ob_main_loop_timeout_remove(ob_main_loop, hide_timeout);
-    } else {
-        ob_main_loop_timeout_add(ob_main_loop, config_dock_hide_timeout * 1000,
+    } else if (!dock->hidden && config_dock_hide) {
+        ob_main_loop_timeout_add(ob_main_loop, config_dock_hide_timeout,
                                  hide_timeout, NULL, NULL);
     }
 }
This page took 0.024165 seconds and 4 git commands to generate.