فهرست منبع

fix dynamic changes to stacking order

David Rose 18 سال پیش
والد
کامیت
e6e1613a92
1فایلهای تغییر یافته به همراه3 افزوده شده و 9 حذف شده
  1. 3 9
      panda/src/glxdisplay/glxGraphicsWindow.cxx

+ 3 - 9
panda/src/glxdisplay/glxGraphicsWindow.cxx

@@ -485,10 +485,11 @@ set_properties_now(WindowProperties &properties) {
     properties.clear_size();
     properties.clear_size();
   }
   }
   if (properties.has_z_order()) {
   if (properties.has_z_order()) {
-    // We'll send the classing stacking request through the standard
+    // We'll send the classic stacking request through the standard
     // interface, for users of primitive window managers; but we'll
     // interface, for users of primitive window managers; but we'll
     // also send it as a window manager hint, for users of modern
     // also send it as a window manager hint, for users of modern
     // window managers.
     // window managers.
+    _properties.set_z_order(properties.get_z_order());
     switch (properties.get_z_order()) {
     switch (properties.get_z_order()) {
     case WindowProperties::Z_bottom:
     case WindowProperties::Z_bottom:
       changes.stack_mode = Below;
       changes.stack_mode = Below;
@@ -853,18 +854,11 @@ set_wm_properties(const WindowProperties &properties, bool already_mapped) {
                   XA_ATOM, 32, PropModeReplace,
                   XA_ATOM, 32, PropModeReplace,
                   (unsigned char *)state_data, next_state_data);
                   (unsigned char *)state_data, next_state_data);
 
 
-  if (!already_mapped) {
+  if (already_mapped) {
     // We have to request state changes differently when the window
     // We have to request state changes differently when the window
     // has been mapped.  To do this, we need to send a client message
     // has been mapped.  To do this, we need to send a client message
     // to the root window for each change.
     // to the root window for each change.
 
 
-    // This doesn't appear to be working for me, though I think I'm
-    // doing everything right.  There's no feedback mechanism,
-    // however, so it's impossible to tell whether I'm actually doing
-    // something wrong, or whether this feature is simply not
-    // supported in my current window manager.  I'll leave it here for
-    // now.
-
     glxGraphicsPipe *glx_pipe;
     glxGraphicsPipe *glx_pipe;
     DCAST_INTO_V(glx_pipe, _pipe);
     DCAST_INTO_V(glx_pipe, _pipe);