-
- // call this again just in case a window we found updates the Strut list
- updateAvailableArea();
-}
-
-
-BScreen::~BScreen(void) {
- if (! managed) return;
-
- if (geom_pixmap != None)
- image_control->removeImage(geom_pixmap);
-
- if (geom_window != None)
- XDestroyWindow(blackbox->getXDisplay(), geom_window);
-
- std::for_each(workspacesList.begin(), workspacesList.end(),
- PointerAssassin());
-
- std::for_each(iconList.begin(), iconList.end(), PointerAssassin());
-
- while (! systrayWindowList.empty())
- removeSystrayWindow(systrayWindowList[0]);
-
- delete image_control;
-
- if (resource.wstyle.font)
- delete resource.wstyle.font;
-
- if (resource.wstyle.close_button.mask != None)
- XFreePixmap(blackbox->getXDisplay(), resource.wstyle.close_button.mask);
- if (resource.wstyle.max_button.mask != None)
- XFreePixmap(blackbox->getXDisplay(), resource.wstyle.max_button.mask);
- if (resource.wstyle.icon_button.mask != None)
- XFreePixmap(blackbox->getXDisplay(), resource.wstyle.icon_button.mask);
- if (resource.wstyle.stick_button.mask != None)
- XFreePixmap(blackbox->getXDisplay(), resource.wstyle.stick_button.mask);
-
- resource.wstyle.max_button.mask = resource.wstyle.close_button.mask =
- resource.wstyle.icon_button.mask =
- resource.wstyle.stick_button.mask = None;
-
- XFreeGC(blackbox->getXDisplay(), opGC);
-}
-
-
-void BScreen::saveSloppyFocus(bool s) {
- resource.sloppy_focus = s;
-
- string fmodel;
- if (resource.sloppy_focus) {
- fmodel = "SloppyFocus";
- if (resource.auto_raise) fmodel += " AutoRaise";
- if (resource.click_raise) fmodel += " ClickRaise";
- } else {
- fmodel = "ClickToFocus";
- }
- config->setValue(screenstr + "focusModel", fmodel);
-}
-
-
-void BScreen::saveAutoRaise(bool a) {
- resource.auto_raise = a;
- saveSloppyFocus(resource.sloppy_focus);
-}
-
-
-void BScreen::saveClickRaise(bool c) {
- resource.click_raise = c;
- saveSloppyFocus(resource.sloppy_focus);
-}
-
-
-void BScreen::saveImageDither(bool d) {
- image_control->setDither(d);
- config->setValue(screenstr + "imageDither", doImageDither());
-}
-
-
-void BScreen::saveOpaqueMove(bool o) {
- resource.opaque_move = o;
- config->setValue(screenstr + "opaqueMove", resource.opaque_move);
-}
-
-
-void BScreen::saveFullMax(bool f) {
- resource.full_max = f;
- config->setValue(screenstr + "fullMaximization", resource.full_max);
-}
-
-
-void BScreen::saveFocusNew(bool f) {
- resource.focus_new = f;
- config->setValue(screenstr + "focusNewWindows", resource.focus_new);
-}
-
-
-void BScreen::saveFocusLast(bool f) {
- resource.focus_last = f;
- config->setValue(screenstr + "focusLastWindow", resource.focus_last);
-}
-
-
-void BScreen::saveAAFonts(bool f) {
- resource.aa_fonts = f;
- config->setValue(screenstr + "antialiasFonts", resource.aa_fonts);
- reconfigure();
-}
-
-
-void BScreen::saveShadowFonts(bool f) {
- resource.shadow_fonts = f;
- config->setValue(screenstr + "dropShadowFonts", resource.shadow_fonts);
- reconfigure();
-}
-
-
-void BScreen::saveWindowToEdgeSnap(int s) {
- resource.snap_to_edges = s;
-
- const char *snap;
- switch (resource.snap_to_edges) {
- case WindowNoSnap: snap = "NoSnap"; break;
- case WindowResistance: snap = "Resistance"; break;
- case WindowSnap: default: snap = "Snap"; break;
- }
- config->setValue(screenstr + "windowToEdgeSnap", snap);
-}
-
-
-void BScreen::saveWindowToWindowSnap(int s) {
- resource.snap_to_windows = s;
-
- const char *snap;
- switch (resource.snap_to_windows) {
- case WindowNoSnap: snap = "NoSnap"; break;
- case WindowResistance: snap = "Resistance"; break;
- case WindowSnap: default: snap = "Snap"; break;
- }
- config->setValue(screenstr + "windowToWindowSnap", snap);
-}
-
-
-void BScreen::saveResizeZones(unsigned int z) {
- resource.resize_zones = z;
- config->setValue(screenstr + "resizeZones", resource.resize_zones);
-}
-
-
-void BScreen::saveWindowCornerSnap(bool s) {
- resource.window_corner_snap = s;
- config->setValue(screenstr + "windowCornerSnap",
- resource.window_corner_snap);
-}
-
-
-void BScreen::saveWorkspaces(unsigned int w) {
- resource.workspaces = w;
- config->setValue(screenstr + "workspaces", resource.workspaces);
-}
-
-
-void BScreen::savePlacementPolicy(int p) {
- resource.placement_policy = p;
- const char *placement;
- switch (resource.placement_policy) {
- case CascadePlacement: placement = "CascadePlacement"; break;
- case UnderMousePlacement: placement = "UnderMousePlacement"; break;
- case ClickMousePlacement: placement = "ClickMousePlacement"; break;
- case ColSmartPlacement: placement = "ColSmartPlacement"; break;
- case RowSmartPlacement: default: placement = "RowSmartPlacement"; break;
- }
- config->setValue(screenstr + "windowPlacement", placement);
-}
-
-
-void BScreen::saveResistanceSize(int s) {
- resource.resistance_size = s;
- config->setValue(screenstr + "resistanceSize",
- resource.resistance_size);
-}
-
-
-void BScreen::saveSnapThreshold(int t) {
- resource.snap_threshold = t;
- config->setValue(screenstr + "edgeSnapThreshold",
- resource.snap_threshold);
-}
-
-
-void BScreen::saveSnapOffset(int t) {
- resource.snap_offset = t;
- config->setValue(screenstr + "edgeSnapOffset",
- resource.snap_offset);
-}
-
-
-void BScreen::saveRowPlacementDirection(int d) {
- resource.row_direction = d;
- config->setValue(screenstr + "rowPlacementDirection",
- resource.row_direction == LeftRight ?
- "LeftToRight" : "RightToLeft");
-}
-
-
-void BScreen::saveColPlacementDirection(int d) {
- resource.col_direction = d;
- config->setValue(screenstr + "colPlacementDirection",
- resource.col_direction == TopBottom ?
- "TopToBottom" : "BottomToTop");