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
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.