Bug 128427

Summary: Minimal windows size changes from program start to "normal operation"
Product: [Applications] konversation Reporter: Wolf Giesen <wgi>
Component: generalAssignee: Konversation Developers <konversation-devel>
Status: RESOLVED FIXED    
Severity: normal CC: pembo13
Priority: NOR    
Version: unspecified   
Target Milestone: ---   
Platform: Gentoo Packages   
OS: Linux   
Latest Commit: Version Fixed In:
Sentry Crash Report:
Attachments: Screenshot of konvi forced by "Window behaviour" procedure

Description Wolf Giesen 2006-06-01 10:29:42 UTC
Version:           0.19 SVN (has been in older versions, too) (using KDE KDE 3.5.2)
Installed from:    Gentoo Packages
Compiler:          gcc-3.4.6 (x86) -O2 -march=pantium4
OS:                Linux

Minimal windows size changes after initial startup (which is quite annoying to me). This has been a long-time bug.

To reproduce:

1. Start konvi (with autoconnect/join to some server)
2. Minimize the window to smallest possible height
3. Get _every_ tab in the foreground at least once
4. Minimize the height again

You'll see that you can now make the window smaller.

Additional:

5. Make a new "window behaviour" rule for konvi and force it to the new minimum size you just attained in #4.
6. Quit and restart konvi

You'll now have an initial window that has the right size, but only shows very small parts of the channel/server tabs (in my case at least, since I have them on the bottom).

Since I "need" (don't ask .-) my window about the smallest possible height, I have been using the method from #5, and it's quite annoying; startup the App and hothey through all your tabs just to have the window right :-)
Comment 1 Wolf Giesen 2006-06-07 08:54:01 UTC
Created attachment 16497 [details]
Screenshot of konvi forced by "Window behaviour" procedure
Comment 2 Wolf Giesen 2006-09-15 00:05:45 UTC
Any chance?
Comment 3 Ivo 2006-11-06 14:54:00 UTC
I can confirm the first part but not the second, in version 1.0.1 on Kubuntu 6.10
Comment 4 Wolf Giesen 2006-11-06 14:55:36 UTC
Second part meaning the behaviour depicted in the screenshot? What did you try?
Comment 5 Eike Hein 2010-02-22 23:39:10 UTC
commit cc9f428389655162e27425f07a573ff4c3bd2df4
Author: Eike Hein <hein@kde.org>
Date:   Mon Feb 22 23:36:22 2010 +0100

    Fix channel tabs opened in the background causing an unreasonable min window width.
    BUG:128427

diff --git a/ChangeLog b/ChangeLog
index 6a7e226..4004713 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -21,6 +21,17 @@ Changes since 1.2.3:
   command without parameters.
 * Fixed a bug causing a crash when sending '/privmsg' without any pa-
   rameters (did not apply to '/msg').
+* In previous versions, channel tabs opened in the background (i.e.
+  while "Focus new tabs" is disabled, as it is by default) would con-
+  siderably increase the minimum width of the window due to particu-
+  larities of the Qt layout system. After raising every channel tab
+  at least once it would then be possible to make the window much
+  narrower. This unintuitive behavior resulted in confusion as to why
+  the minimum width of the Konversation window would sometimes vary
+  greatly. This has been fixed in this version, i.e. it is no longer
+  necessary to have raised every channel tab at least once to achieve
+  a reasonable minimum width of the window. This also means that
+  joining a new channel is now much less likely to resize the window.
 
 
 Changes from 1.2.2 to 1.2.3:
diff --git a/src/irc/channel.cpp b/src/irc/channel.cpp
index 1343b01..74fb527 100644
--- a/src/irc/channel.cpp
+++ b/src/irc/channel.cpp
@@ -157,6 +157,7 @@ Channel::Channel(QWidget* parent, QString _name) : ChatWindow(parent)
 
     // The box holding the channel modes
     modeBox = new KHBox(topicWidget);
+    modeBox->hide();
     modeBox->setSizePolicy(hfixed);
     modeT = new ModeButton("T",modeBox,0);
     modeN = new ModeButton("N",modeBox,1);
@@ -2242,6 +2243,7 @@ void Channel::updateQuickButtons(const QStringList &newButtonList)
 
     // the grid that holds the quick action buttons
     m_buttonsGrid = new QWidget (nickListButtons); //Q3Grid(2, nickListButtons);
+    m_buttonsGrid->hide();
     QGridLayout* layout = new QGridLayout (m_buttonsGrid);
     layout->setMargin(0);
Comment 6 Eike Hein 2010-02-23 14:22:46 UTC
*** Bug 228152 has been marked as a duplicate of this bug. ***