// -*- 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>
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 = Property::atoms.wm_protocols;
- _wm_delete = Property::atoms.wm_protocols;
-
// 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);
}
{
}
-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();
}