]> Dogcows Code - chaz/openbox/blobdiff - otk/appwidget.cc
add a keyboard plugin
[chaz/openbox] / otk / appwidget.cc
index ee5428838185685beacc2869ca93b0e5fb9d20d8..5dcad7aea6e08c2628137bb577a04692534338f8 100644 (file)
@@ -1,11 +1,12 @@
 // -*- mode: C++; indent-tabs-mode: nil; c-basic-offset: 2; -*-
 
-#ifdef HAVE_CONFIG_H
-# include "../config.h"
-#endif
+#include "config.h"
 
 #include "appwidget.hh"
 #include "application.hh"
+#include "property.hh"
+#include "renderstyle.hh"
+#include "display.hh"
 
 extern "C" {
 #include <X11/Xlib.h>
@@ -13,20 +14,16 @@ extern "C" {
 
 namespace otk {
 
-AppWidget::AppWidget(Application *app, Direction direction,
-                           Cursor cursor, int bevel_width)
-  : Widget(app, app->getStyle(), direction, cursor, bevel_width),
+AppWidget::AppWidget(Application *app, Direction direction, int bevel)
+  : Widget(app->screen(), app, direction, bevel),
     _application(app)
 {
   assert(app);
 
-  _wm_protocols = XInternAtom(**display, "WM_PROTOCOLS", false);
-  _wm_delete = XInternAtom(**display, "WM_DELETE_WINDOW", false);
-
   // set WM Protocols on the window
   Atom protocols[2];
-  protocols[0] = _wm_protocols;
-  protocols[1] = _wm_delete;
+  protocols[0] = Property::atoms.wm_protocols;
+  protocols[1] = Property::atoms.wm_delete_window;
   XSetWMProtocols(**display, window(), protocols, 2);
 }
 
@@ -34,25 +31,25 @@ AppWidget::~AppWidget()
 {
 }
 
-void AppWidget::show(void)
+void AppWidget::show()
 {
-  Widget::show(true);
-
+  if (!visible())
   _application->_appwidget_count++;
+  Widget::show(true);
 }
 
-void AppWidget::hide(void)
+void AppWidget::hide()
 {
+  if (visible())
+    _application->_appwidget_count--;
   Widget::hide();
-
-  _application->_appwidget_count--;
 }
 
 void AppWidget::clientMessageHandler(const XClientMessageEvent &e)
 {
   EventHandler::clientMessageHandler(e);
-  if (e.message_type == _wm_protocols &&
-      static_cast<Atom>(e.data.l[0]) == _wm_delete)
+  if (e.message_type == Property::atoms.wm_protocols &&
+      static_cast<Atom>(e.data.l[0]) == Property::atoms.wm_delete_window)
     hide();
 }
 
This page took 0.027504 seconds and 4 git commands to generate.