From: Dana Jansens Date: Wed, 6 Nov 2002 09:19:53 +0000 (+0000) Subject: determine if the user/application requested its initial position or not X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=9df8ba78f3438f7ea63d9aef8121da969d5a1d9b;p=chaz%2Fopenbox determine if the user/application requested its initial position or not --- diff --git a/src/client.cc b/src/client.cc index ec907538..9b26b3bf 100644 --- a/src/client.cc +++ b/src/client.cc @@ -54,7 +54,8 @@ OBClient::OBClient(Window window) " 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 @@ OBClient::OBClient(Window window) _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 @@ void OBClient::updateNormalHints() // 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; diff --git a/src/client.hh b/src/client.hh index 89da0dc9..799ff703 100644 --- a/src/client.hh +++ b/src/client.hh @@ -103,6 +103,10 @@ private: //! 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