]> Dogcows Code - chaz/openbox/blobdiff - src/screen.cc
bitmap masks return!
[chaz/openbox] / src / screen.cc
index 498c9c86a9791823469ff296a7f5f0fe1871ac3d..6bc04ad133382f3cb93109ee23d32a9ef7aac668 100644 (file)
@@ -48,7 +48,8 @@ namespace ob {
 
 Screen::Screen(int screen)
   : WidgetBase(WidgetBase::Type_Root),
-    _number(screen)
+    _number(screen),
+    _style(screen, "")
 {
   assert(screen >= 0); assert(screen < ScreenCount(**otk::display));
   _info = otk::display->screenInfo(screen);
@@ -73,13 +74,8 @@ Screen::Screen(int screen)
   XDefineCursor(**otk::display, _info->rootWindow(),
                 openbox->cursors().session);
 
-  // initialize the shit that is used for all drawing on the screen
-  _image_control = new otk::ImageControl(_info, true);
-  _image_control->installRootColormap();
-  _root_cmap_installed = True;
-
-  // initialize the screen's style
-  _style.setImageControl(_image_control);
+  // XXX: initialize the screen's style
+  /*
   otk::ustring stylepath;
   python_get_string("theme", &stylepath);
   otk::Configuration sconfig(false);
@@ -92,6 +88,7 @@ Screen::Screen(int screen)
     }
   }
   _style.load(sconfig);
+  */
 
   // set up notification of netwm support
   changeSupportedAtoms();
@@ -157,8 +154,6 @@ Screen::~Screen()
 
   XDestroyWindow(**otk::display, _focuswindow);
   XDestroyWindow(**otk::display, _supportwindow);
-
-  delete _image_control;
 }
 
 
@@ -328,16 +323,18 @@ void Screen::changeSupportedAtoms()
     otk::Property::atoms.net_wm_moveresize_size_bottomright,
     otk::Property::atoms.net_wm_moveresize_move,
 */
-/*
     otk::Property::atoms.net_wm_allowed_actions,
     otk::Property::atoms.net_wm_action_move,
     otk::Property::atoms.net_wm_action_resize,
+    otk::Property::atoms.net_wm_action_minimize,
     otk::Property::atoms.net_wm_action_shade,
+/*    otk::Property::atoms.net_wm_action_stick,*/
     otk::Property::atoms.net_wm_action_maximize_horz,
     otk::Property::atoms.net_wm_action_maximize_vert,
+    otk::Property::atoms.net_wm_action_fullscreen,
     otk::Property::atoms.net_wm_action_change_desktop,
     otk::Property::atoms.net_wm_action_close,
-*/
+
     otk::Property::atoms.net_wm_state,
     otk::Property::atoms.net_wm_state_modal,
     otk::Property::atoms.net_wm_state_maximized_vert,
@@ -471,14 +468,6 @@ void Screen::manageWindow(Window window)
   // reparented back to root automatically
   XChangeSaveSet(**otk::display, window, SetModeInsert);
 
-  if (!(openbox->state() == Openbox::State_Starting ||
-        client->positionRequested())) {
-    // position the window intelligenty .. hopefully :)
-    // call the python PLACEWINDOW binding
-    EventData data(_number, client, EventPlaceWindow, 0);
-    openbox->bindings()->fireEvent(&data);
-  }
-
   // create the decoration frame for the client window
   client->frame = new Frame(client, &_style);
 
@@ -498,13 +487,21 @@ void Screen::manageWindow(Window window)
   // reparent the client to the frame
   client->frame->grabClient();
 
+  if (!(openbox->state() == Openbox::State_Starting ||
+        client->positionRequested())) {
+    // position the window intelligenty .. hopefully :)
+    // call the python PLACEWINDOW binding
+    EventData data(_number, client, EventPlaceWindow, 0);
+    openbox->bindings()->fireEvent(&data);
+  }
+
   // if on the current desktop.. (or all desktops)
   if (client->desktop() == _desktop ||
       client->desktop() == (signed)0xffffffff) {
     client->frame->show();
   }
-  // XXX: handle any requested states such as maximized
+
+  client->applyStartupState();
 
   otk::display->ungrab();
 
This page took 0.023797 seconds and 4 git commands to generate.