all repos — openbox @ 9df8ba78f3438f7ea63d9aef8121da969d5a1d9b

openbox fork - make it a bit more like ryudo

determine if the user/application requested its initial position or not
Dana Jansens danakj@orodu.net
commit

9df8ba78f3438f7ea63d9aef8121da969d5a1d9b

parent

aa8047d68b9c558e632d37f3ebb3e2325978c9ff

2 files changed, 14 insertions(+), 2 deletions(-)

jump to
M src/client.ccsrc/client.cc

@@ -54,7 +54,8 @@ " notify focus: \t%s\t\t urgent: \t%s\n"

" shaped: \t%s\t\t modal: \t%s\n" " shaded: \t%s\t\t iconic: \t%s\n" " vert maximized:\t%s\t\t horz maximized:\t%s\n" - " fullscreen: \t%s\t\t floating: \t%s\n", + " fullscreen: \t%s\t\t floating: \t%s\n" + " requested pos: \t%s\n", _window, _title.c_str(), _icon_title.c_str(),

@@ -81,7 +82,8 @@ _iconic ? "yes" : "no",

_max_vert ? "yes" : "no", _max_horz ? "yes" : "no", _fullscreen ? "yes" : "no", - _floating ? "yes" : "no"); + _floating ? "yes" : "no", + _positioned ? "yes" : "no"); #endif }

@@ -239,20 +241,26 @@ _max_x = _max_y = INT_MAX;

// get the hints from the window if (XGetWMNormalHints(otk::OBDisplay::display, _window, &size, &ret)) { + _positioned = (size.flags & (PPosition|USPosition)); + if (size.flags & PWinGravity) _gravity = size.win_gravity; + if (size.flags & PMinSize) { _min_x = size.min_width; _min_y = size.min_height; } + if (size.flags & PMaxSize) { _max_x = size.max_width; _max_y = size.max_height; } + if (size.flags & PBaseSize) { _base_x = size.base_width; _base_y = size.base_height; } + if (size.flags & PResizeInc) { _inc_x = size.width_inc; _inc_y = size.height_inc;
M src/client.hhsrc/client.hh

@@ -103,6 +103,10 @@ //! The state of the window, one of WithdrawnState, IconicState, or

//! NormalState long _wmstate; + //! Was the window's position requested by the application? if not, we should + //! place the window ourselves when it first appears + bool _positioned; + //! Can the window receive input focus? bool _can_focus; //! Urgency flag