Hi,
On 22.05.2012 01:21, Arvydas Sidorenko wrote:
> Currently the splash windows are out of control, appearing usually not
> on the screen the mouse/client is.
> I restricted the window geometries of XCB_CONFIGURE_REQUEST event to
> be changed only within the same window, otherwise the request gets
> ignored. I checked other WMs code and as far as I can see the common
> way is to blindly apply whatever is requested, but seems GUI writers
> put a lot of effort in positioning their splashes and sometimes it's
> necessary to chill them out. Lets improve our multihead support one
> more step further.
+ if ( ev->value_mask & XCB_CONFIG_WINDOW_X
+ || ev->value_mask & XCB_CONFIG_WINDOW_Y
+ || ev->value_mask & XCB_CONFIG_WINDOW_WIDTH
+ || ev->value_mask & XCB_CONFIG_WINDOW_HEIGHT
+ || ev->value_mask & XCB_CONFIG_WINDOW_BORDER_WIDTH)
{
Uhm, what's the point of this? Each of those is checked with its own 'if' later
on, so should already be handled? And client_resize() without changing the
geometry doesn't do anything.
In what cases would this 'if' make a difference?
> I checked other WMs code and as far as I can see the common
> way is to blindly apply whatever is requested, but seems GUI writers
> put a lot of effort in positioning their splashes and sometimes it's
> necessary to chill them out.
In which cases do clients know better where to place its windows? I guess that
splashes should just always be centered on the screen (this could easily be
implemented in awful).
> + if (screen_getbycoord(c->geometry.x, c->geometry.y) != c->screen
Also, if all WMs just blindly apply these requests, why should we apply it only
in case it isn't "too weird" (=moving to another screen)? I'm more for an "all
or nothing" thingie.
I guess my preferred fix would be just ignore (via xwindow_configure()) all
ConfigureRequests. Right now I don't have any idea for when it would be
right/correct to use this. Let's wait for the bug reports to tell us. ;-)
> - if not startup
> - and c.type ~= "desktop"
> - and c.type ~= "dock"
> - and c.type ~= "splash" then
> + if not startup and c.type ~= "desktop" and c.type ~= "dock" then
IMHO this part isn't all much related to the rest of the patch. Could you split
this out in its own patch? (Which says that docks and desktop clients are
special (placement-wise) while splashes aren't all that special)
Uli
--
'dubito ergo sum'
-- Elke's whiteboard
--
To unsubscribe, send mail to [email protected].