Re: Problems with window placement on suse and fluxbox 0.9.12 and higher
Simon Bowden <[email protected]>
| Newsgroups | gmane.comp.window-managers.fluxbox.user |
|---|---|
| Message-ID | <Pine.LNX.4.64.0606200851001.14874@ossicles.orchestra.cse.unsw.EDU.AU> |
Ahhh, a bug.
I have fixed it in svn.
Patch attached, should apply to 1.0rc as well.
Basically, when something set the size and not position, it was still
marking it as position-changed (so don't place the window). This is
because we use the "moveResize" function to implement resize.
Cheers,
- Simon
On Mon, 19 Jun 2006, Thomas Bauer wrote:
> Hi Simon,
>
> thanks for the advice, it helped to discover the problem. After launching
> fluxbox with blank config, it worked well. I realized that the problem is in
> my apps file. It had the following setting for xterm:
>
> [app] (xterm)
> [Dimensions] {591 496}
> [end]
>
> When I removed these three lines, window placement for the xterms worked
> again. I wonder,however, why this setting affected the position of the
> windows, because it should only define the size.
>
> Best regards,
> Thomas
>
> Simon Bowden wrote:
>
>> Hi,
>>
>> Is it still broken with a blank config?
>> mv .fluxbox .fluxbox.temp
>> (test running fluxbox)
>> mv .fluxbox .fluxbox.old &&
>> mv .fluxbox.temp .fluxbox &&
>> rm -rf .fluxbox.old
>>
>> If it is NOT still broken, then please send your init and apps files, as
>> I'd like to find out why.
>>
>> If it is still broken... well, I've got no idea how that would happen in a
>>
>> normal X server.
>>
>> Cheers,
>>
>> - Simon
>>
>
_______________________________________________
Fluxbox-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/fluxbox-users
fluxbox.resize_is_not_move.patch
(text/plain, 671 B)
diff -I'^// \$Id' -Naur --exclude-from diff-exclude trunk.orig/src/Window.cc trunk.tabs/src/Window.cc
--- trunk.orig/src/Window.cc 2006-06-19 22:57:41.000000000 +1000
+++ trunk.tabs/src/Window.cc 2006-06-20 09:04:57.000000000 +1000
@@ -1288,7 +1288,14 @@
}
void FluxboxWindow::resize(unsigned int width, unsigned int height) {
+ int old_x = m_old_pos_x;
+
moveResize(frame().x(), frame().y(), width, height);
+
+ // magic to detect if moved during initialisation
+ // we restore the old state, because we were a resize, not a moveResize!
+ if (!isInitialized())
+ m_old_pos_x = old_x;
}
// send_event is just an override