+
+ Atom supported[] = {
+ otk::OBProperty::net_current_desktop,
+ otk::OBProperty::net_number_of_desktops,
+ otk::OBProperty::net_desktop_geometry,
+ otk::OBProperty::net_desktop_viewport,
+ otk::OBProperty::net_active_window,
+ otk::OBProperty::net_workarea,
+ otk::OBProperty::net_client_list,
+ otk::OBProperty::net_client_list_stacking,
+ otk::OBProperty::net_desktop_names,
+ otk::OBProperty::net_close_window,
+ otk::OBProperty::net_wm_name,
+ otk::OBProperty::net_wm_visible_name,
+ otk::OBProperty::net_wm_icon_name,
+ otk::OBProperty::net_wm_visible_icon_name,
+/*
+ otk::OBProperty::net_wm_desktop,
+*/
+ otk::OBProperty::net_wm_strut,
+ otk::OBProperty::net_wm_window_type,
+ otk::OBProperty::net_wm_window_type_desktop,
+ otk::OBProperty::net_wm_window_type_dock,
+ otk::OBProperty::net_wm_window_type_toolbar,
+ otk::OBProperty::net_wm_window_type_menu,
+ otk::OBProperty::net_wm_window_type_utility,
+ otk::OBProperty::net_wm_window_type_splash,
+ otk::OBProperty::net_wm_window_type_dialog,
+ otk::OBProperty::net_wm_window_type_normal,
+/*
+ otk::OBProperty::net_wm_moveresize,
+ otk::OBProperty::net_wm_moveresize_size_topleft,
+ otk::OBProperty::net_wm_moveresize_size_topright,
+ otk::OBProperty::net_wm_moveresize_size_bottomleft,
+ otk::OBProperty::net_wm_moveresize_size_bottomright,
+ otk::OBProperty::net_wm_moveresize_move,
+*/
+/*
+ otk::OBProperty::net_wm_allowed_actions,
+ otk::OBProperty::net_wm_action_move,
+ otk::OBProperty::net_wm_action_resize,
+ otk::OBProperty::net_wm_action_shade,
+ otk::OBProperty::net_wm_action_maximize_horz,
+ otk::OBProperty::net_wm_action_maximize_vert,
+ otk::OBProperty::net_wm_action_change_desktop,
+ otk::OBProperty::net_wm_action_close,
+*/
+ otk::OBProperty::net_wm_state,
+ otk::OBProperty::net_wm_state_modal,
+ otk::OBProperty::net_wm_state_maximized_vert,
+ otk::OBProperty::net_wm_state_maximized_horz,
+ otk::OBProperty::net_wm_state_shaded,
+ otk::OBProperty::net_wm_state_skip_taskbar,
+ otk::OBProperty::net_wm_state_skip_pager,
+ otk::OBProperty::net_wm_state_hidden,
+ otk::OBProperty::net_wm_state_fullscreen,
+ otk::OBProperty::net_wm_state_above,
+ otk::OBProperty::net_wm_state_below,
+ };
+ const int num_supported = sizeof(supported)/sizeof(Atom);
+
+ // convert to the atom values
+ for (int i = 0; i < num_supported; ++i)
+ supported[i] =
+ Openbox::instance->property()->atom((otk::OBProperty::Atoms)supported[i]);
+
+ Openbox::instance->property()->set(_info->rootWindow(),
+ otk::OBProperty::net_supported,
+ otk::OBProperty::Atom_Atom,
+ supported, num_supported);
+}
+
+
+void OBScreen::changeClientList()
+{
+ Window *windows;
+ unsigned int size = clients.size();
+
+ // create an array of the window ids
+ if (size > 0) {
+ Window *win_it;
+
+ windows = new Window[size];
+ win_it = windows;
+ OBClient::List::const_iterator it = clients.begin();
+ const OBClient::List::const_iterator end = clients.end();
+ for (; it != end; ++it, ++win_it)
+ *win_it = (*it)->window();
+ } else
+ windows = (Window*) 0;