determine if the user/application requested its initial position or not
This commit is contained in:
parent
aa8047d68b
commit
9df8ba78f3
2 changed files with 14 additions and 2 deletions
|
@ -54,7 +54,8 @@ OBClient::OBClient(Window window)
|
||||||
" shaped: \t%s\t\t modal: \t%s\n"
|
" shaped: \t%s\t\t modal: \t%s\n"
|
||||||
" shaded: \t%s\t\t iconic: \t%s\n"
|
" shaded: \t%s\t\t iconic: \t%s\n"
|
||||||
" vert maximized:\t%s\t\t horz maximized:\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,
|
_window,
|
||||||
_title.c_str(),
|
_title.c_str(),
|
||||||
_icon_title.c_str(),
|
_icon_title.c_str(),
|
||||||
|
@ -81,7 +82,8 @@ OBClient::OBClient(Window window)
|
||||||
_max_vert ? "yes" : "no",
|
_max_vert ? "yes" : "no",
|
||||||
_max_horz ? "yes" : "no",
|
_max_horz ? "yes" : "no",
|
||||||
_fullscreen ? "yes" : "no",
|
_fullscreen ? "yes" : "no",
|
||||||
_floating ? "yes" : "no");
|
_floating ? "yes" : "no",
|
||||||
|
_positioned ? "yes" : "no");
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -239,20 +241,26 @@ void OBClient::updateNormalHints()
|
||||||
|
|
||||||
// get the hints from the window
|
// get the hints from the window
|
||||||
if (XGetWMNormalHints(otk::OBDisplay::display, _window, &size, &ret)) {
|
if (XGetWMNormalHints(otk::OBDisplay::display, _window, &size, &ret)) {
|
||||||
|
_positioned = (size.flags & (PPosition|USPosition));
|
||||||
|
|
||||||
if (size.flags & PWinGravity)
|
if (size.flags & PWinGravity)
|
||||||
_gravity = size.win_gravity;
|
_gravity = size.win_gravity;
|
||||||
|
|
||||||
if (size.flags & PMinSize) {
|
if (size.flags & PMinSize) {
|
||||||
_min_x = size.min_width;
|
_min_x = size.min_width;
|
||||||
_min_y = size.min_height;
|
_min_y = size.min_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size.flags & PMaxSize) {
|
if (size.flags & PMaxSize) {
|
||||||
_max_x = size.max_width;
|
_max_x = size.max_width;
|
||||||
_max_y = size.max_height;
|
_max_y = size.max_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size.flags & PBaseSize) {
|
if (size.flags & PBaseSize) {
|
||||||
_base_x = size.base_width;
|
_base_x = size.base_width;
|
||||||
_base_y = size.base_height;
|
_base_y = size.base_height;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (size.flags & PResizeInc) {
|
if (size.flags & PResizeInc) {
|
||||||
_inc_x = size.width_inc;
|
_inc_x = size.width_inc;
|
||||||
_inc_y = size.height_inc;
|
_inc_y = size.height_inc;
|
||||||
|
|
|
@ -103,6 +103,10 @@ private:
|
||||||
//! NormalState
|
//! NormalState
|
||||||
long _wmstate;
|
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?
|
//! Can the window receive input focus?
|
||||||
bool _can_focus;
|
bool _can_focus;
|
||||||
//! Urgency flag
|
//! Urgency flag
|
||||||
|
|
Loading…
Reference in a new issue