]> Dogcows Code - chaz/openbox/blobdiff - otk/appwidget.cc
layout fixes, give widgets a default texture, etc.
[chaz/openbox] / otk / appwidget.cc
index 7541d427b8c389bfa8a35a8c601b84c807938594..8b157225fd09031477d6e5a5965c9157ab6d1941 100644 (file)
@@ -1,11 +1,11 @@
 // -*- 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"
 
 extern "C" {
 #include <X11/Xlib.h>
@@ -13,46 +13,42 @@ 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::display, "WM_PROTOCOLS", false);
-  _wm_delete = XInternAtom(Display::display, "WM_DELETE_WINDOW", false);
-
   // set WM Protocols on the window
   Atom protocols[2];
-  protocols[0] = _wm_protocols;
-  protocols[1] = _wm_delete;
-  XSetWMProtocols(Display::display, window(), protocols, 2);
+  protocols[0] = Property::atoms.wm_protocols;
+  protocols[1] = Property::atoms.wm_delete_window;
+  XSetWMProtocols(**display, window(), protocols, 2);
 }
 
 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.021423 seconds and 4 git commands to generate.